我想使用带有fetch API的Async / Await。所以,我为return result.json()
提供了2个异步功能。
我在Promise.all([])
添加了我的2个承诺,但返回的值是' function()'。
我的代码:
// Load external users
const externalUsers = async () => {
const result = await fetch(url);
return result.json();
};
const localUsers = async () => {
const result = await Users.allDocs({ include_docs: true });
return result.rows;
};
Promise.all([externalUsers, localUsers]).then(values => {
console.log(values); // return (2) [function, function]
});
我不明白为什么。你能救我吗?
谢谢社区!
答案 0 :(得分:4)
在Promise.all
中运行您的功能。因此,他们将返回Promises,已解决并传递给then
函数。
Promise.all([externalUsers(), localUsers()]).then(values => {
console.log(values);
});
答案 1 :(得分:1)
您应该await
Promise.all
const values = await Promise.all([...]);
const value1 = values[0];
...
您看到函数的原因是因为Promise.all
返回了一个需要解析的Promise数组。因此,await
Promise.all
,等待他们全部完成/先解决。