以下代码之间有什么区别:
代码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);
}
答案 0 :(得分:4)
您的两个功能之间的差异是await
vs return
。丢失的await
并不重要,因为从async function
返回承诺将始终使用承诺结果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;
}