javascript - Node.js 中 API 调用与回调的异步并行

标签 javascript node.js asynchronous callback parallel-processing

我需要等待两个 API 回调函数的任务,当任务完成时,我希望收到回调,以便我可以使用这两个函数的数据。

我希望该函数能够并行执行...我阅读了很多有关 async.parallel 的问题,但我找不到将这些函数与异步一起使用的方法。

当然async只是一个例子,如果可以的话任何其他方式都可以。

很抱歉我的英语不好,我希望代码更容易理解。

谢谢

var dataFunctionA = "";
var dataFunctionB = "";

var callbackFunctionA = function(err, response, data) {
  // do some work with data
  dataFunctionA = "Hello";
}

var callbackFunctionB = function(err, response, data) {
  // do some work with data
  dataFunctionB = " World!";
}

function printHelloWorld(){
   console.write(dataFunctionA + dataFunctionB);
}


APIClient.functionA(paramA, callbackFunctionA);

APIClient.functionB(paramB, callbackFunctionB);

// need to wait for the two callbacks
printHelloWorld();

最佳答案

如果你不想使用 promise ,你可以这样做:

var dataFunctionA = "";
var dataFunctionB = "";
var dataFunctionCount = 2;

function checkDone() {
  dataFunctionCount--;
  if(dataFunctionCount === 0) {
// need to wait for the two callbacks
printHelloWorld();  
  }
}

var callbackFunctionA = function(err, response, data) {
  // do some work with data
  dataFunctionA = "Hello";
  checkDone();
}

var callbackFunctionB = function(err, response, data) {
  // do some work with data
  dataFunctionB = " World!";
  checkDone();
}

function printHelloWorld(){
   console.write(dataFunctionA + dataFunctionB);
}

APIClient.functionA(paramA, callbackFunctionA);

APIClient.functionB(paramB, callbackFunctionB);

关于javascript - Node.js 中 API 调用与回调的异步并行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34445825/

相关文章:

javascript - 在 React Native 中从图像中删除背景

android - CSS 媒体查询和 My Nexus One(或其他 Android 手机)

node.js - 上传文件时: CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource

node.js - 如何让expressjs像facebook一样支持批量请求

c# - 使用 StopWatch 类测量 C#/异步数据访问

asynchronous - 运行超时的异步计算

c# - 当您等待同步方法时会发生什么

javascript - BoxHelper 让 BoxGeometry 变得巨大

javascript - 尝试压缩 JavaScript/jQuery 代码

javascript - 安排图标和布局