了解异步JavaScript
作者:互联网
以下代码段之间有什么区别:
代码1:
export default async function syncData() {
await Promise.all([syncData1(), syncData2()]);
}
// called in sagas.js
function* x() {
const res = yield call(syncData);
}
代码2:
export default function syncData() {
return Promise.all([syncData1(), syncData2()]);
}
// called in sagas.js
function* x() {
const res = yield call(syncData);
}
解决方法:
您的两个函数之间的区别是等待与返回.丢失的等待并不重要,因为从异步函数返回一个承诺将始终以承诺结果similar to return await
进行解析.因此唯一的区别是第一个解决方案中隐式返回的undefined.
明确写出:
export default async function syncData() {
const res = await Promise.all([syncData1(), syncData2()]);
return undefined;
}
export default function syncData() {
const res = await Promise.all([syncData1(), syncData2()]);
return res;
}
标签:redux-saga,asynchronous,async-await,javascript 来源: https://codeday.me/bug/20191026/1932859.html