Используйте асинхронное ожидание, чтобы позволить .then исчезнуть - PullRequest
0 голосов
/ 20 февраля 2019

Запрос:

Асинхронное ожидание для этой строки: fetch (url) .then (resp => resp.json ())

Так что не должно быть .then ()звонки больше!

Оригинальный код:

    const urls = [
  'https://jsonplaceholder.typicode.com/users',
  'https://jsonplaceholder.typicode.com/posts',
  'https://jsonplaceholder.typicode.com/albums'
]

const getData = async function() {
  const [ users, posts, albums ] = await Promise.all(urls.map(url =>
      fetch(url).then(resp => resp.json())
  ));
  console.log('users', users);
  console.log('posta', posts);
  console.log('albums', albums);
}
getData();

Что я пробую в моем JS:

 const [ users, posts, albums ] = await Promise.all(urls.map
 (url=>
     resp = await fetch(url);
     data = await resp.json();
 ));

Я хочу, чтобы вывод был таким же, как и исходный код

1 Ответ

0 голосов
/ 20 февраля 2019

Ваша функция ничего не возвращает и не помечена async (что требуется для любой функции, использующей await).Кроме того, нехорошо не объявлять переменные.

const [users, posts, albums] = await Promise.all(urls.map(async url => {
    const resp = await fetch(url);
    const data = await resp.json();
    return data;
}));

РЕДАКТИРОВАТЬ: также, как сказал guest271314 - теперь нужны curly, поскольку внутренняя функция не является простым выражением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...