【问题标题】:What does "Non-constructor value passed to NewPromiseCapability" mean?“传递给 NewPromiseCapability 的非构造函数值”是什么意思?
【发布时间】:2016-09-01 19:49:02
【问题描述】:

我使用了 Kris Kowal 的 Q,但现在我试图减少库的数量,所以我改用原生 Promises(但是是的,我正在使用 polyfill 来支持 Internet Explorer)。

我的大部分函数都返回 Promise,但有一个地方我想公开 Q.all 由我自己的代码提供。当我这样做时:

MyLibrary.prototype.all = Promise.all;

...,并使用它 (myLibrary.all([...]).then(...)),我得到“非构造函数值传递给 NewPromiseCapability。”这是什么意思?

【问题讨论】:

    标签: javascript promise q es6-promise


    【解决方案1】:

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

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

    我想另一种选择是通过MyLibrary.prototype.all = Promise.all.bind(Promise) 将 .all() 绑定到 Promise

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-28
      • 2016-03-17
      • 2017-01-01
      • 2015-04-11
      相关资源
      最近更新 更多