javascript 等待多个链式异步函数

javascript await on multiple chained async functions

假设我有以下内容:

const a = new A();
await a.getB().action();

A.prototype.getB()async 以及 B.prototype.action()。 如果我尝试等待函数的链接,我会收到错误消息: TypeError: a.getB(...).action is not a function.

如果我将函数的链接分开并等待每个承诺,它就可以正常工作。 有没有办法将这些承诺链接在一起并等待它们?

你需要等待下摆:

const a = new A();
const b = await a.getB();
await b.action();

或者

const a = new A();
await a.getB().then(b => b.action());

这是因为 getB 是一个异步函数,不是 return B 对象而是 Promise 没有 action 方法的对象。这个承诺将通过 B 对象进一步解析,您可以通过使用 PVermeer 提议的 then 方法捕获它来访问解析的值。