async-await непонятная строка

224
14 января 2019, 22:30

У меня есть задача, в ней есть строка которую я не совсем могу понять, разъясните мне пожалуйста следующее.

await (await (await fetch ('https://jsonplaceholder.typicode.com/todos/1')).json())

Я понимаю так: fetch это асинхронный запрос, await это ожидание выполнения какого-то асинхронного действия. вопрос зачем усложнять написанием 3ех await? p.s: я проверял так-же работает если убрать один await

await (await fetch ('https://jsonplaceholder.typicode.com/todos/1')).json()
Answer 1

Чтобы разобраться с одной строкой, ее нужно разбить на несколько:

  1. вызов fetch, возвращает Promise, который разрешается при получении ответа

    var response = await fetch(...)
    
  2. вызов json, возвращает Promise, который разрешается, при чтении тела ответа и разбора его в json

    var json = await response.json();
    
  3. json - это объект, поэтому нет нужды использовать третий await

Answer 2

Рабочий пример

// await используется только в async функциях 
(async () => { 
  // возвращает https://developer.mozilla.org/ru/docs/Web/API/Response 
  const response = await fetch('https://jsonplaceholder.typicode.com/todos/1') 
  // вызывает метод Response, точнее миксина Body https://developer.mozilla.org/ru/docs/Web/API/Body 
  const json = await response.json() 
  // json - это все что может быть json: объект, массив, строка, число... 
  console.log(json) 
})()

READ ALSO
Подсчет скрытых элементов

Подсчет скрытых элементов

Есть фото галерея, она отображает 5 элементов, остальные скрыты при помощи свойства overflow : hiden, вопрос: как можно сделать подсчет и вывод числа...

167
Как из Django передать строку, математическое выражение, в JS?

Как из Django передать строку, математическое выражение, в JS?

Передаю с помощью шаблонизатора Jinja, данные из Django в JavaScriptКод выглядит примерно так:

146
Замена на map vue.js

Замена на map vue.js

Всем привет,как будет выглядеть функция ,если заменить на map?

169
Миксины(примеси) в es6?

Миксины(примеси) в es6?

Изучил миксины в es5 (те

169