我了解 Q 服务的基础知识,但在实现它时遇到困难。我有一系列事件,第二个事件取决于第一个事件的返回。
promise 设置
var Q = require('q');
var dataPromise = getCustomerId();
dataPromise
.then(function(data) {
console.log('Success!', data);
getGUID(req, res, next);
}, function(error) {
console.log('Failure...', error);
});
};
getCustomerId()
var getCustomerId = function() {
var getCustomerIdOptions = {
options...
};
var deferred = Q.defer();
request(getCustomerIdOptions, function(err,resp,body){
if(err){
deferred.reject(err);
console.log(err);
return;
}else{
deferred.resolve(body);
}
return deferred.promise;
});
};
我认为我正确返回了延迟 promise ,但返回了一个错误,指出 dataPromise 没有“then”属性,它是未定义的。
最佳答案
您将在 request()
回调中返回 promise 。
实际的 getCustomerId()
函数不会返回任何内容。
关于javascript - 使用 Q 服务链接异步事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31948934/