使用Q服务链接异步事件

时间:2015-08-11 18:06:51

标签: javascript node.js q

我了解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”属性,它是未定义的。

1 个答案:

答案 0 :(得分:2)

您将在request()回调中返回承诺。

实际的getCustomerId()函数不会返回任何内容。