Node.js 多步骤流程的最佳实践

Node.js 多步骤流程的最佳实践,node.js,queue,rabbitmq,Node.js,Queue,Rabbitmq,我有一个服务可以发送到“/”。此服务将消息推送到处理消息的RABBITMQ队列。我想在完成后返回指示,然后调用另一个函数进行另一个处理。 情景: (http)->server1->RABBITMQ队列->RABBITMQ使用者->返回server1->调用函数A 服务器是NODE JS 谢谢:)承诺链在您的情况下可能会很有用。它将一个接一个地执行所有异步步骤,如果其中任何一个失败,错误将被捕获 const doSomethingStepByStep = () => { return P

我有一个服务可以发送到“/”。此服务将消息推送到处理消息的RABBITMQ队列。我想在完成后返回指示,然后调用另一个函数进行另一个处理。 情景:

(http)->server1->RABBITMQ队列->RABBITMQ使用者->返回server1->调用函数A

服务器是NODE JS


谢谢:)

承诺链在您的情况下可能会很有用。它将一个接一个地执行所有异步步骤,如果其中任何一个失败,错误将被捕获

const doSomethingStepByStep = () => {
  return Promise.resolve()
.then(() => {
  // call server, or whatever - here just an example that promise is resolved
  return Promise.resolve()
  })
.then(() => {
  // etc, call another server
  })
.catch(ex => {
    // something went wrong in either in the steps above
  })
}

// use it
doSomethingStepByStep()
  .then((res) => {
// do something with the result
})
查看消息传递的“Process Manager”模式

以及“saga”(and)或“workflowmanager”模式,它们基本上是相同的,但名称不同

其要点是,您有一段理解整个流程的核心代码。它处理在正确的时间发送正确的消息、接收响应、处理该响应以了解下一步会发生什么,以及发出下一个调用以实现流程中的下一步

我有一篇博文介绍了这一核心思想,从节点中的简单JS对象转移到具有这些概念的RabbitMQ