javascript - 使用 Q 服务链接异步事件

标签 javascript node.js q

我了解 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/

相关文章:

javascript - 在递归函数调用中递增计数器

node.js - IISNode 和 Express 3 产生 http 403.13 错误

javascript - 使用 JQuery 生成 HTML,然后使用 .html() 对其进行更改。在 FF 中可以,但在 Chrome 中不行?

session - nodejs 连接 session cookie 未在某些机器上设置

javascript - 从 Controller 模块调用 angularjs 工厂模块

javascript - 加载完所有图像后从 JQuery 'get' 返回

javascript - AngularJS HTTP 错误代码与 $q.all()?

javascript - "Promisifying"缓存响应

javascript - componentDidMount 上的条件状态清除

javascript - 将迭代中的值传递给函数参数