node.js - 回调函数在 async.foreachlimit 上的 watefall 中未按预期工作
问题描述
回调函数在 async.for 每个限制的瀑布中未按预期工作。当我删除那个 rest api 调用并且如果我调用callback(null,arg2)
它按预期工作时,我认为回调函数或以下代码中的某些 api 调用存在问题。
var async = require("async");
var users = [1, 2, 3, 45]; // Initialize user array or get it from DB
var e = [];
var unirest = require("unirest");
var data = function() {
return new Promise((resolve, reject) => {
async.forEachLimit(
users,
1,
function(user, userCallback) {
async.waterfall(
[
function(callback) {
console.log(user);
callback(null, user);
},
function(arg1, callback) {
console.log(arg1);
callback(null, arg1);
},
function(arg2, callback) {
unirest
.get("http://dummy.restapiexample.com/api/v1/employee/1")
.end(function(response) {
if (response.error) callback("null", "data");
else callback(null, arg2);
});
}
],
function(err, result) {
if (err) {
console.log("err");
reject(e);
} else {
console.log("done", result);
e.push(result);
userCallback();
resolve(e);
}
}
);
},
function(err, result) {
console.log("User For Loop Completed", err, result);
}
);
});
};
我得到的输出为
预期输出为
解决方案
推荐阅读
- c++ - 使用 SFINAE 有条件地解析分配器成员
- ruby-on-rails - 在 Rails 5 上使用 pg_search 在类别名称关键字下查找帖子
- c# - Visual Studio 2017 c# setup 项目配置文件路径
- scala - 泛型函数中的隐式转换
- php - 我想在 .htaccess 文件中重写一个 url
- python - Merge 2 pandas dataframe using similar data
- amazon-web-services - 用于微服务的私有子网 ecs 连接上负载均衡器的 AWS API 网关
- python - 使用 Python 正则表达式从面试记录中提取文本
- c++ - 通过名称 cpp 捕获特定异常
- networking - netlink_broadcast 失败,返回值 -3