请求:
异步等待此行: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();
));
我希望输出与原始代码相同
答案 0 :(得分:3)
您的函数不返回任何内容,并且未标记为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所说的-由于内部函数不是一个简单的表达式,现在需要curls。