Chrome中的原生承诺无法解决

时间:2014-06-07 05:33:01

标签: javascript google-chrome asynchronous promise

我正在使用Chrome v.35,据报道它为Promise提供原生支持。浏览器确实识别了Promise构造函数,但是以无数示例中显示的方式使用它并且Web上的文档链接不起作用。

以下是我创建Promise的方法:

var promise = new Promise(function(resolve,reject) {
            self.events.on("reply",function(event) {
                if (event.msgId === id) {
                    resolve(event.packet);//we get here, but fail to step into method resolve
                }
            });
            self.events.on("cancelReply",function(event) {
                if (event.msgId === id) {
                    reject(Error(event.msgId));
                }
            });
});

调用回调“resolve”无效。在调试器中,函数存在,但是进入它只是将控制传递给下一行。并且永远不会调用promise上的“then”方法:

promise.then(function(result) {
   //we never get here
});

有人可以告诉我我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

调试器不会因为它的本机代码而步入解决方案。

我怀疑你的代码中的错误是阻止resolve实际被调用(可能是回复事件未来,或者id不匹配)。