2016-05-06 3 views
1

私はKris KowalのQを使っていましたが、今ではライブラリーの数を減らそうとしていますので、ネイティブプロミスに切り替えています(ただし、インターネットエクスプローラーをサポートするためにpolyfillを使用しています)。「非プロデューサ値がNewPromiseCapabilityに渡されました」とはどういう意味ですか?

私の関数のほとんどは約束を返しますが、私のコードで提供されているようにQ.allを公開したい場所がありました。私が行ったときは:(myLibrary.all([...]).then(...)

MyLibrary.prototype.all = Promise.all;

を...、それを使用して、私は "非コンストラクタ値がNewPromiseCapabilityに渡された。" ですどういう意味ですか?

答えて

0

MyLibraryはPromiseから正しく継承されないため、コンテキスト(「this」)が失われました。

修正するには、myLibrary.all([...])の代わりに、私はただPromise.all([...])を使用しています。

プロンプトに.all()をバインドする別のオプションがあるとします。MyLibrary.prototype.all = Promise.all.bind(Promise)