Node.js nodejs-多个异步http请求

Node.js nodejs-多个异步http请求,node.js,Node.js,我刚刚开始了我的nodejs之旅,我想创建一个简单的nodejs应用程序,它需要: -首先通过http请求/获取一些初始数据, -使用接收到的json执行另一组请求(有些可以并行执行,有些需要先执行,接收到的数据将用于创建有效的url) 考虑到nodejs是异步的,并且基于回调,我想知道实现这一点的最佳方法是什么,以获得“干净的代码”,并且不会过多地弄乱代码 感谢您提供的任何提示/指导,Mark同意这是主观的,一般来说,我们要做的是承诺,还有一些固有的承诺: 对于您的特定问题,imo,npm模

我刚刚开始了我的nodejs之旅,我想创建一个简单的nodejs应用程序,它需要: -首先通过http请求/获取一些初始数据, -使用接收到的json执行另一组请求(有些可以并行执行,有些需要先执行,接收到的数据将用于创建有效的url)

考虑到nodejs是异步的,并且基于回调,我想知道实现这一点的最佳方法是什么,以获得“干净的代码”,并且不会过多地弄乱代码


感谢您提供的任何提示/指导,Mark同意这是主观的,一般来说,我们要做的是承诺,还有一些固有的承诺:

对于您的特定问题,imo,npm模块请求承诺提供了一些很好的解决方案。它本质上是请求模块的“预期”版本:

它将允许您获取/POST/PUT/DELETE,并使用。
then()

-这段代码首先从服务器获取一些内容,然后将其他内容发布到该服务器

function addUserToAccountName(url, accountName, username, password){
  var options = assignUrl(url); // assignUrl is not in this code
  request
  .get(options) //first get
  .auth(username, password)
  .then(function(res) {
    var id = parseId(res.data, accountName); //parse response
    return id;
  })
  .then(function(id) {
    var postOptions = Object.assign(defaultSettings, {url: url + id + '/users'})
    request.post(postOptions) // then make a post
      .auth(username, password)
      .then(function(response) {
        //console.log(response);
      })
      .catch(function(err) {
        console.log((err.response.body.message));
      })
  })
}
您可以继续使用
。然后()
从上一个
返回的任何内容。然后()
将被传递到函数中


也许可以查看异步库。它有许多内置功能,似乎可以实现您所寻找的功能。一些有用的功能可能是“Async.瀑布”和“Async.map”


这在很大程度上是一件主观的事情,但我的想法是用来组织回调代码。请检查:)@标记所提供的答案相互补充,并且可以很好地协同工作。