Хочу использовать async function и await, но пишет async function is only available in es8.

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем mel0nYeee, 21 авг 2021.

  1. mel0nYeee

    mel0nYeee Нуб

    Как исправить?
    Код (C++):
    function sleep(ms) {
      return new Promise(resolve => setTimeout(resolve, ms));
    }

    async function demo() {
      console.log('Taking a break...');
      await sleep(2000);
      console.log('Two second later');
    }
    Вот код
     
  2. ИгорьК

    ИгорьК Гуру

    Это все продолжение истории с сервой? :)

    Если воспользоваться гуглопереводчиком, то выяснится, что такая конструкция возможна только в es8. Как вывод - узнать что такое es8 в данном случае и перейти к нему.

    Ну или воспользоваться тем советом, что я вам дал в другой теме, без привлечения промисов.

    Если серьезно, то те возможности JS, которые вы хотите задействовать, в прошивке не реализованы.
     
    Последнее редактирование: 21 авг 2021
    arkadyf нравится это.
  3. Konkery

    Konkery Гик

    Тут можно ответить короче), у Гордона четко написано, что async не реализован и всего скорее не будет из за особенностей аппаратной реализации плат под которые пишется Espruino.
    Сам недавно озадачивался данным вопросом. При этом Promise реализованы, применял их на двух платах, на обеих работало.
     
  4. ИгорьК

    ИгорьК Гуру

    Короче не получилось :) С учётом того сообщения, на которое ссылка. Там неумение написать элементарный алгоритм, а здесь - Promise, await sleep... :)
     
    Konkery нравится это.