什么是“;传递给NewPromiseCapability的非构造函数值“;意思是

What does "Non-constructor value passed to NewPromiseCapability" mean?

本文关键字:构造函数 意思是 什么 NewPromiseCapability      更新时间:2023-09-26

我使用了Kris Kowal的Q,但现在我试图减少库的数量,所以我切换到原生Promises(但是的,我使用polyfill来支持internet explorer)。

我的大多数函数都返回promise,但有一个地方我想公开Q.all是由我自己的代码提供的。我做的时候:

MyLibrary.prototype.all = Promise.all;

并使用它(myLibrary.all([...]).then(...)),我得到了"传递给NewPromiseCapability的非构造函数值"。这意味着什么?

MyLibrary从未从Promise正确继承,因此上下文("this")丢失。

为了解决这个问题,我没有使用myLibrary.all([...]),而是使用Promise.all([…]).

我想另一个选项可能是通过MyLibrary.prototype.all = Promise.all.bind(Promise) 将.all()绑定到Promise