我了解Q服务的基础知识,但是在实现它时遇到了麻烦。我有一系列事件,第二个事件取决于第一个返回事件。
承诺设置
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;
});
};
我认为我正确地返回了延迟的诺言,但返回的错误是dataPromise没有“ then”属性,它是未定义的。
最佳答案
您将在request()
回调中返回promise。
实际的getCustomerId()
函数不返回任何内容。
关于javascript - 使用Q服务链接异步事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31948934/