【发布时间】:2014-01-05 03:00:25
【问题描述】:
这可能是一个愚蠢的问题,但我无法解决这个问题。
考虑以下代码:
function throwError() {
throw Error("can't touch this.");
}
var def = q.defer();
def.promise.then(
function() {
console.log("no error");
},
function() {
console.log("error");
}
);
q.fcall(throwError).then(def.resolve, def.resolve).done();
在我看来,这应该打印error。相反,它打印no error。
q 手册指出:
reject 函数是用rejected 解决的简写 承诺。
q.fcall(throwError) 应该产生一个被拒绝的承诺,所以 deferred 应该被拒绝,对吧?
请注意,这是一个纯粹的假设问题,我知道这不会在现实世界中使用。
【问题讨论】:
标签: javascript node.js q