使用Q Promises在node.js中链接GET请求

乍得

我正在尝试将一系列GET请求链接在一起。它们是一系列API调用,它们依赖于先前调用中的数据。我对Promise的理解是,我应该能够制作一条扁平的.then()链,但是当我尝试执行此操作时,我的function / console.logs没有按正确的顺序执行,因此我现在的金字塔越来越大的厄运:

var request = require('request');
var deferredGet = Q.nfbind(request);

deferredGet(*params*)
  .then(function(response){
  // process data from body and add it to the userAccount object which I am modifying.
    return userAccount;
  })
  .then(function(userAccount){
    deferredGet(*params*)
      .then(function(response){
        //process data from body and add to userAccount
        return userAccount;
    })
    .then(function..... // There's a total of 7 API calls I need to chain, and it's already getting unwieldy.

我知道您应该兑现承诺,例如也许我应该兑现,deferredGet但是当我尝试这样做时,我什么也没兑现同样,传递给第一个参数then是响应,而不是承诺。所以我不知道从这里去哪里,但我觉得我做错了。

提前致谢!

雪佛兰

你是正确的,你应该回来deferredGet但是,意识到返回的仍然是一个承诺。因此,您之后应该保持链接链接.then

var request = require('request');
var deferredGet = Q.nfbind(request);

deferredGet(*params*)
  .then(function(response){
    // process data from body and add it to the userAccount object which I am modifying.
    return userAccount;
  })
  .then(function(userAccount){
    return deferredGet(*params*);
  })
  .then(function(response){
    // response should be the resolved value of the promise returned in the handler above.
    return userAccount;
  })
  .then(function (userAccount) {
    //...
  });

当您从then处理程序中返回承诺时,Q将使其成为链的一部分。如果您从处理程序返回原始值,则Q会做出隐含的承诺,就像userAccount在第一个处理程序中看到的那样,该承诺将立即立即使用该原始值进行解析

看看我为您整理的这个工作示例:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

NodeJS:在Q中循环使用Promises

来自分类Dev

How do I rewrite a series of conditional statements with Q promises in node.js?

来自分类Dev

在TypeScript中,如何将Promises与Node.js上的RSVP实现一起使用

来自分类Dev

Node.js和Q Promises:如何以一种更简洁的方式来传递参数?

来自分类Dev

在node.js中使用promises时是否需要process.exit(1)

来自分类Dev

通过2个异步操作在Node.JS中使用Bluebird Promises

来自分类Dev

如何在 Node.js 中使用“async/await”和“promises”进行同步执行?

来自分类Dev

使用 body 执行 Get 请求 - Node js

来自分类Dev

读取多个目录中的文件,使用Node和Promises将文件名与数据匹配

来自分类Dev

读取多个目录中的文件,使用Node和Promises将文件名与数据匹配

来自分类Dev

如何使用$ q promises同步执行FOR LOOP?

来自分类Dev

澄清node.js + promises片段

来自分类Dev

在node.js应用程序中使用q.js的q.all来实现并行异步

来自分类Dev

在node.js应用程序中使用q.js的q.all来实现并行异步

来自分类Dev

如何在node.js中实际使用Q promise?

来自分类Dev

跳过Q Promises中的then函数的正确方法

来自分类Dev

将GET请求与响应Node.js链接

来自分类Dev

无法使用node.js和“请求”模块向UTF-8链接发出请求

来自分类Dev

在Node.js中使用async-await和promises时无法按预期顺序获得结果

来自分类Dev

Q.js可以在没有node.js的情况下使用吗?

来自分类Dev

在Node.js中使用Q.js Promise进行循环的正确方法

来自分类Dev

回调可以与 promises 一起使用还是在 node.js 中以一种或另一种方式使用?

来自分类Dev

关于用角度和打字稿链接$ q promises的困惑

来自分类Dev

在node.js中使用q时如何删除样板代码

来自分类Dev

我如何在Node.js中将Q-lib与Restify一起使用

来自分类Dev

使用Q使node.js fs.readFile作为承诺的操作

来自分类Dev

我如何在Node.js中将Q-lib与Restify一起使用

来自分类Dev

使用node和express服务于get(/ foo /:bar)请求,当res.render(template)时,模板中的所有相对链接都相对于/ foo而不是/

来自分类Dev

使用node和express服务于get(/ foo /:bar)请求,当res.render(template)时,模板中的所有相对链接都相对于/ foo而不是/

Related 相关文章

  1. 1

    NodeJS:在Q中循环使用Promises

  2. 2

    How do I rewrite a series of conditional statements with Q promises in node.js?

  3. 3

    在TypeScript中,如何将Promises与Node.js上的RSVP实现一起使用

  4. 4

    Node.js和Q Promises:如何以一种更简洁的方式来传递参数?

  5. 5

    在node.js中使用promises时是否需要process.exit(1)

  6. 6

    通过2个异步操作在Node.JS中使用Bluebird Promises

  7. 7

    如何在 Node.js 中使用“async/await”和“promises”进行同步执行?

  8. 8

    使用 body 执行 Get 请求 - Node js

  9. 9

    读取多个目录中的文件,使用Node和Promises将文件名与数据匹配

  10. 10

    读取多个目录中的文件,使用Node和Promises将文件名与数据匹配

  11. 11

    如何使用$ q promises同步执行FOR LOOP?

  12. 12

    澄清node.js + promises片段

  13. 13

    在node.js应用程序中使用q.js的q.all来实现并行异步

  14. 14

    在node.js应用程序中使用q.js的q.all来实现并行异步

  15. 15

    如何在node.js中实际使用Q promise?

  16. 16

    跳过Q Promises中的then函数的正确方法

  17. 17

    将GET请求与响应Node.js链接

  18. 18

    无法使用node.js和“请求”模块向UTF-8链接发出请求

  19. 19

    在Node.js中使用async-await和promises时无法按预期顺序获得结果

  20. 20

    Q.js可以在没有node.js的情况下使用吗?

  21. 21

    在Node.js中使用Q.js Promise进行循环的正确方法

  22. 22

    回调可以与 promises 一起使用还是在 node.js 中以一种或另一种方式使用?

  23. 23

    关于用角度和打字稿链接$ q promises的困惑

  24. 24

    在node.js中使用q时如何删除样板代码

  25. 25

    我如何在Node.js中将Q-lib与Restify一起使用

  26. 26

    使用Q使node.js fs.readFile作为承诺的操作

  27. 27

    我如何在Node.js中将Q-lib与Restify一起使用

  28. 28

    使用node和express服务于get(/ foo /:bar)请求,当res.render(template)时,模板中的所有相对链接都相对于/ foo而不是/

  29. 29

    使用node和express服务于get(/ foo /:bar)请求,当res.render(template)时,模板中的所有相对链接都相对于/ foo而不是/

热门标签

归档