使用Q服务来链接asynchronous事件

我了解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()callback中返回promise。

实际的getCustomerId()函数不返回任何东西。