编程语言
首页 > 编程语言> > 了解异步JavaScript

了解异步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