2017-02-12 24 views
12

Czy można bezpiecznie używać async-await w JavaScript zamiast generatory-obiecuje teraz, wiedząc, że składnia nie została jeszcze wykonana i pojawi się wraz z wydaniem ES8?Czy korzystanie z asynchronizacji jest bezpieczne?

Jakie przeglądarki mogę liczyć na to, że są dostępne i jak często są to przeglądarki, w których ta składnia nie jest dostępna? Przez Bezpieczne rozumiem bez transpilatorów, takich jak babel?

+2

Co oznacza "bezpieczny"? Bezpieczny dla kogo, gdzie, wobec jakiej możliwości? – IMSoP

+0

Składnia nie ulegnie zmianie, ale będziesz chciał używać transpilerów przez dłuższy czas. Czy "bezpieczne" oznacza z lub bez transpozycji? – loganfsmyth

+0

'bez niektórych transpilerów' - jakie środowisko chcesz" bezpieczne "? przeglądarki? zdecydowanie nie, prawie nigdy, dopóki świat nie zdecyduje, że Internet Explorer jest w końcu ** martwy ** - węzeł, nie obsługuje go (jeszcze) –

Odpowiedz

20

Istnieją dwa miejsca sprawdzić kiedy mam pytania, takie jak to:

mogę używać www: http://caniuse.com/#search=await

I Węzeł Zieloną: http://node.green/#async-functions

Zwykle odpowiedź jest zachęcono do uwzględnienia odpowiednich informacji, aby uniknąć zgnilizny połączenia. Ale na ironię ta odpowiedź ma dokładnie przeciwny problem: ta odpowiedź zgnije (poniższe informacje staną się nieważne) na długo przed linkami powyżej. Więc zawsze sprawdzić caniuse i node.green pierwszy:

Od caniuse.com od lutego 2017:

  • IE: NIEOBSŁUGIWANE (wersja najczęściej używanych = 11)
  • krawędź *: Od wersji 15 (wersji najbardziej używane = 14)
  • Firefox od wersji 52 (wersja najczęściej używane = 50)
  • chrom: od wersji 55 (wersja najczęściej używane = 55)
  • Safari: od wersji 10.1 (wersja najczęściej używane = 10)
  • Opera: Od wersji 42 (wersja najczęściej używanych = 42)
  • iOS Safari *: NIEOBSŁUGIWANE (wersja najczęściej używanych = 10,2)
  • Opera Mini *: NIEOBSŁUGIWANE
  • Android Browser *: NIEOBSŁUGIWANE (większość Używane version = 4,4)
  • Chrome dla Androida: od wersji 55 (najczęściej używane version = 55)

od node.green od lutego 2017

  • Node.js: Od wersji 8.0.0

Tak więc w zależności od tego, co uważasz za akceptowalne, jest ono bezpieczne lub nie jest bezpieczne. Zauważ, że większość urządzeń mobilnych tego nie obsługuje, a od lutego 2017 większość instalacji node.js ma wersję 6, a niektóre zaczynają przechodzić do wersji 7 (niektóre biblioteki wydają się mieć problemy z węzłem 7) i żadna z wersji nie obsługuje asynchronizacji/oczekiwania. Węzeł 8 nie został jeszcze wydany i jest dostępny tylko jako kompilacje nocne.

+0

Dodano najczęściej używaną wersję do przechowywania danych. Wygląda na to, że najczęściej używaną przeglądarką na świecie jest Chrome na Androida w około 25% globalnym użytkowaniu. – slebetman

+0

Według [informacji o wersji] (https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/RevisionHistory .html # // apple_ref/doc/uid/TP40014305-CH99-SW1), Safari 10.1 dodało obsługę ECMAScript 2016 i ECMAScript 2017 w Safari dla macOS * i iOS *, w tym obsługę asynchronizacji i czekania. –

Powiązane problemy