我正在尝试使用Q
Promise实现,但面临奇怪的不一致。
当我在Chrome m33中运行时,代码如下:
new Promise(function(resolve, reject) {
resolve(1);
}).then(function(value) {
console.log(value);
});
它的效果与我预期的一样 - 它返回另一个Promise
并记录1
。
但是如果我将相同的代码调用到(function (Promise) { ... }(window.Q));
中,我会在控制台中看到resolve
回调的主体,而不是值。
Fiddle to look at - 适用于Chrome和Aurora。
我遗漏了什么或是图书馆中的错误吗?
PS:Q
版本1.0.0
答案 0 :(得分:1)
看起来,Q.promise
替代原生Promise
,而不是Q
本身:fiddle。
Q.promise
- > Promise
,但Q.all
- > Promise.all
。
答案 1 :(得分:0)
升级到Q v1.0.1,它引入了Q.Promise
,它支持ES6 promise接口的公共子集。 Q
类似于Promise.resolve
,而new Promise
取代了以前的Q.defer()
。 ES6没有完全解除Q API,但在很大程度上解除了类似函数的行为。