Любопытное поведение async / await - PullRequest
2 голосов
/ 19 мая 2019

Я знаю, что правильный способ использования await заключается в использовании функции async.

Я нашел этот подход ниже при серфинге в Интернете.Изначально я думал, что это не сработает.Но когда я запускаю это в моей хромированной консоли, это удивляет меня.Оно работает.

var _response = await (await fetch('https://reqres.in/api/users?page=2').then(res => res.json()));
console.log(_response);

Но когда я попробовал этот подход в моем проекте Rectjs, он не работает.

Бросает меня ниже ошибки.

unknown: неожиданный токен (1:22)

1 |var _response = await (await fetch ('https://reqres.in/api/users?page=2').then(res => res.json ()));

Я также пробовал во многих онлайн-компиляторах es6, таких какhttps://repl.it/languages/babel Это не сработает.Это работает только в моей консоли Chrome (Chrome 74).

Кто-то помог мне разобраться в этом поведении.

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 19 мая 2019

Поведение, которое вы описываете, относится к DevTools Chrome.

https://bugs.chromium.org/p/chromium/issues/detail?id=658558

Похоже, они добавили его в ответ на запрос сообщества.

0 голосов
/ 19 мая 2019

Вы можете заключить асинхронный вызов в асинхронный IIFE следующим образом:

(async () => {
   var _response =  await fetch('https://reqres.in/api/users?page=2').then(res => res.json());
   console.log(_response);
})()
...