【发布时间】:2016-02-10 10:19:30
【问题描述】:
我正在使用 nodejs,想知道什么时候应该使用 Q defer,什么时候只使用 Promise.resolve/reject?
我看到了很多这两种类型的例子,例如:
// with Q defer
fucntion oneWay(myVal) {
var deffered = Q.defer();
if (myVal < 0) {
deffered.reject(new Error('nope'));
} else {
deffered.resolve('yay');
}
return deffered.promise;
}
// native Promise
fucntion orAnother(myVal) {
if (myVal < 0) {
return Promise.reject(new Error('nope'));
} else {
return Promise.resolve('yay');
}
}
有什么区别,什么时候使用 difer 比较好?
Promise.resolve/reject (native) 和 Q.resolve/reject 有什么区别吗?它们都返回承诺,但当我在节点控制台中查看返回值时,它看起来不同。
谢谢
【问题讨论】:
-
不清楚上下文(前端 FW 作为 Angular、节点应用程序等)以及你用 Promise 引用什么(原生 ES6 承诺,像 Bluebird 这样的库?)
-
你是对的。我已经说得更清楚了(节点和原生承诺)
-
它们或多或少是相同想法的替代实现。使用您喜欢的任何一个。
标签: javascript node.js promise q deferred