【发布时间】:2019-08-27 02:17:53
【问题描述】:
使用 Q.js Javascript 承诺库,如何在 finally 块中获取已解决的值/拒绝的错误对象。基本上我想在 finally 块中使用传递给 then 块的解析数据执行通用代码。
var q = require('Q');
var defer = q.defer();
setTimeout(function () {
console.log("----------------------------------");
promise2 = defer.promise;
var t = promise2.then(function (value) {
console.log('defer then => ' + value);
})
.catch(function (err) {
console.log('defer catch => ' + err);
})
.finally(function (data) {
console.log('function pro1 : ' + defer);
// console.log('defer finally(resolved value) => ' + data); // how to get 123 here
// console.log('defer finally(error) => ' + data); // how to get 'Error occurred.' here
doSomething(data);
})
setTimeout(function () {
console.log('after2: ' + t);
},2000)
defer.resolve('123');
defer.reject('Error occurred.');
},10);
【问题讨论】:
标签: javascript node.js asynchronous promise q