我了解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”属性,它是未定义的。
答案 0 :(得分:2)
您将在request()
回调中返回承诺。
实际的getCustomerId()
函数不会返回任何内容。