Node.js 节点异步映射实用程序未按预期工作,无法处理大量数据
我试图做的是从数据库中获取fitbit用户的,然后逐个处理,并为每个用户调用三个api端点。一切正常,但当用户数量急剧增加时,我无法为某些用户保留刷新令牌Node.js 节点异步映射实用程序未按预期工作,无法处理大量数据,node.js,asynchronous,Node.js,Asynchronous,我试图做的是从数据库中获取fitbit用户的,然后逐个处理,并为每个用户调用三个api端点。一切正常,但当用户数量急剧增加时,我无法为某些用户保留刷新令牌 var fitbit_instances = []; // this array will have instances for each user User.find(where, {}, function (err, fitbit_users) { async.map(fitbit_users, functi
var fitbit_instances = []; // this array will have instances for each user
User.find(where, {}, function (err, fitbit_users) {
async.map(fitbit_users, function (v, cbk) {
// make instance of api for each user
fitbit_instances.push(new Fitbit(config.fitbit));
var index = fitbit_instances.length - 1;
// then save data for each endpoint
async.series([
function (callback) {
// api end point 1
fitbit_instances[index].request({
uri: "https://api.fitbit.com/1/user/-/activities/date/" + $newdate + ".json",
method: 'GET'
}, function (err, data, res) {
if (err) {
callback(err, null);
} else {
callback(null, udata);
}
});
},
function (callback) {
// api end point 2
fitbit_instances[index].request({
uri: "https://api.fitbit.com/1/user/-/activities/date/" + $newdate + ".json",
method: 'GET'
}, function (err, data, res) {
if (err) {
callback(err, null);
} else {
callback(null, udata);
}
});
},
function (callback) {
// api end point 3
fitbit_instances[index].request({
uri: "https://api.fitbit.com/1/user/-/activities/date/" + $newdate + ".json",
method: 'GET'
}, function (err, data, res) {
if (err) {
callback(err, null);
} else {
callback(null, udata);
}
});
},
],
function (err, data) {
cbk(null);
});
}, function (err) {
if (err) {
res.status(500).json({message: 'Database error occurs.', error: err});
}
else {
res.status(200).json({message: 'Success', data: [], error: {}});
}
});
});