了解异步 javascript
Understanding asynchronous 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);
}
你的两个函数之间的区别是 await
与 return
。缺少的 await
并不重要,因为从 async function
返回承诺将始终以承诺结果 解决。所以唯一的区别是第一个解决方案中隐式返回的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;
}
下面这段代码有什么区别:
代码 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);
}
你的两个函数之间的区别是 await
与 return
。缺少的 await
并不重要,因为从 async function
返回承诺将始终以承诺结果 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;
}