2017-02-12 16 views
12

Можно ли использовать async-wait в Javascript вместо генераторов-обещаний сейчас, зная, что синтаксис еще не сделан, и будет поставляться с выпуском ES8?Можно ли использовать async/wait сейчас?

Какие браузеры я могу рассчитывать на его доступность и насколько распространены браузеры, где этот синтаксис недоступен? В Safe я имею в виду без каких-то транспилеров, таких как babel?

+2

Что означает «безопасный»? Безопасный для кого, где, против какой возможности? – IMSoP

+0

Синтаксис не изменится, но вы долго будете использовать транспиляторы. «Безопасно» означает с транспиляцией или без нее? – loganfsmyth

+0

'без некоторых транспилеров' - какова среда, в которой вы хотите быть« безопасным »? браузеры? определенно нет, почти никогда, пока мир не решит, что интернет-исследователь наконец-то ** мертв ** - узел, пока не поддерживает его (пока) –

ответ

20

Есть два места, я проверяю всякий раз, когда у меня есть такие вопросы, как это:

Могу ли я использовать сайт: http://caniuse.com/#search=await

И Узел Зеленый: http://node.green/#async-functions

Обычно ответ на рекомендуется включать соответствующую информацию, чтобы избежать гниения. Но по иронии судьбы этот ответ имеет совершенно противоположную проблему: этот ответ будет гнить (информация ниже становится недействительной) задолго до ссылок выше. Так всегда проверяйте caniuse и node.green первый:

От caniuse.com по состоянию на февраль 2017 года:

  • IE: не поддерживается (наиболее часто используемый вариант = 11)
  • Край *: Начиная с версии 15 (наиболее часто используемые версии = 14)
  • Firefox: Начиная с версии 52 (наиболее часто используемый вариант = 50)
  • Хром: С версии 55 (наиболее часто используемый вариант = 55)
  • Сафари: Из версии 10.1 (наиболее часто используемые версии = 10)
  • Opera: Начиная с версии 42 (наиболее часто используемый вариант = 42)
  • IOS Safari *: не поддерживается (наиболее часто используемый вариант = 10,2)
  • Opera Mini *: НЕ ПОДДЕРЖКЕ
  • Android Browser *: не поддерживается (большинство б версия = 4,4)
  • Chrome для Android: Начиная с версии 55 (наиболее часто используемый вариант = 55)

С node.green по состоянию на февраль 2017

  • Node.js: From version 8.0.0

Так что в зависимости от того, что вы считаете приемлемым, оно безопасно или не безопасно. Обратите внимание, что большинство мобильных устройств не поддерживают его, и с февраля 2017 года большинство установок node.js - это версия 6, некоторые из которых начинают переходить к версии 7 (некоторые библиотеки, похоже, имеют проблемы с узлом 7), и ни одна из версий не поддерживает async/await. Узел 8 еще не выпущен и доступен только в ночных сборках.

+0

Добавлена ​​самая используемая версия для данных caniuse. Похоже, что наиболее используемым браузером в мире является Chrome для Android при глобальном использовании на уровне около 25%. – slebetman

+0

Согласно [примечания к выпуску] (https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/RevisionHistory .html # // apple_ref/doc/uid/TP40014305-CH99-SW1), Safari 10.1 добавила поддержку ECMAScript 2016 и ECMAScript 2017 в Safari для macOS * и iOS *, включая поддержку async и ожидание. –