说我有以下内容:
const a = new A();
await a.getB().action();
A.prototype.getB()
和async
也是B.prototype.action()
。
如果我尝试等待函数链接,则会收到错误消息:
TypeError: a.getB(...).action is not a function
。
如果我要分开函数的链接并等待每个诺言,它会很好地工作。 有没有办法将这些诺言链接在一起并等待它们在一起?
答案 0 :(得分:2)
这是因为getB
是一个异步函数,它不返回B对象,而是返回没有Promise
方法的action
对象。可以通过B对象进一步解决此承诺,您可以使用PVermeer提出的then
方法捕获已解决的值,以访问已解决的值。
答案 1 :(得分:1)
您都需要等待下摆:
const a = new A();
const b = await a.getB();
await b.action();
或
const a = new A();
await a.getB().then(b => b.action());