【发布时间】:2015-07-16 23:05:41
【问题描述】:
以下是在 Q 中使用 Promise 的简短示例。
这是 test1.js:
function testDefer() {
var deferred = Q.defer();
fs.readFile("foo.txt", "utf-8", function (error, text) {
if (error) {
deferred.reject(new Error(error));
} else {
deferred.resolve(text);
}
});
return deferred.promise;
}
这是 test2.js
(function(){
'use strict';
var test1 = require('./test1');
test1.testDefer().then(
function(data){
console.log('all good');
},
function(err) {
//upon error i might want to throw an exception, however, it is not thrown / ignored.
throw new Error('I want to throw this exception');
}
);
})();
我想在 test2 中抛出一个异常,以防 promise 被拒绝(或者在某些情况下它被解决)。无论如何,异常会被忽略,程序会在不抛出异常的情况下结束。
我的问题是,如何从成功/失败函数中抛出错误?
谢谢
【问题讨论】:
标签: javascript node.js promise q