ES7 - 如何停止(剪切)异步/等待链接

时间:2018-03-06 02:34:02

标签: javascript async-await ecmascript-2017

如果我在嵌套函数调用中使用async / await函数,我认为async / await函数的调用者应该具有async / await前缀。

例如,在这种情况下:

function a() {
  b();
}
function b() {
  c();
}
function c() {
  d();
}

...

function y() {
  z();
}

如果z是异步函数,那么这些函数应该是:

async function a() {
  await b();
}
async function b() {
  await c();
}
async function c() {
  await d();
}

...

async function y() {
  await z();
}

何时/如何停止async / await的链接?

1 个答案:

答案 0 :(得分:2)

async函数只是承诺的语法糖。它是一个返回承诺的函数,应该被视为一个函数。

在某些时候应该有:

a().catch(...)

async IIFE:

(async () => {
  try {
    await a();
  } catch (e) { ... }
})();