Javascript 蓝鸟promisifyAll不';在普通的箱子里不行

Javascript 蓝鸟promisifyAll不';在普通的箱子里不行,javascript,promise,bluebird,Javascript,Promise,Bluebird,我试图介绍一个Pusher.js函数,但我有点困惑,为什么最后一种技术有效而前两种不行,因为前两种似乎遵循文档示例 我得到的错误是:triggerAsync未定义 样品 var Pusher = require('pusher'); var pusher = new Pusher(params); Promise.promisifyAll(Pusher); //this doesn't work for some reason var triggerAsync = Promise.promis

我试图介绍一个Pusher.js函数,但我有点困惑,为什么最后一种技术有效而前两种不行,因为前两种似乎遵循文档示例

我得到的错误是:triggerAsync未定义

样品

var Pusher = require('pusher');
var pusher = new Pusher(params);

Promise.promisifyAll(Pusher); //this doesn't work for some reason
var triggerAsync = Promise.promisify(pusher.trigger); //this also doesn't work

Promise.promisifyAll(Object.getPrototypeOf(pusher));  //this works
…因为前两个似乎遵循文档示例

最后一个也是!如果我们看一下(在文档底部),您会发现这一点,它简要解释了您为什么需要采用这种行为:

在上述所有情况下,库都以某种方式提供其类。如果不是这样,您仍然可以通过创建一次性实例来promisify:


因此,尽管它没有给我们一个明确的答案,说明为什么我们需要使用Pusher来实现这一点,但我们至少可以确定,这是因为它不会“以某种方式使其类可用”。你也可以放心,你不一定做得不对(除非你必须这样做,否则你不应该使用这种方法)。

BluebirdJS.com是我们的3.0文档!3.0还没有准备好!这是2.x文档
var ParanoidLib = require("...");
var throwAwayInstance = ParanoidLib.createInstance();
Promise.promisifyAll(Object.getPrototypeOf(throwAwayInstance));
// Like before, from this point on, all new instances + even the throwAwayInstance suddenly support promises