使用回送,我有一个简单的for循环,在其中执行findOne:
let my_data = [];
Orders.forEach(function(order,idx) {
let postalcode = order.toJSON().customer.postal_code;
let ps4 = postalcode.slice(0,4);
app.models.postalcode.findOne({where: {postal_code: parseInt(ps4)},include: ['depot']}, function (err, Postalcode) {
if (err) {
winston.error('Could not load postalcode %s due to error %s: ', ps4, err.message);
} else {
if (Postalcode) {
let depot = Postalcode.toJSON().depot;
if (!depot) {
//
} else {
let depot_city = depot.city;
if (cities_to_process.indexOf(depot_city) > -1) {
my_data.push(order);
} else {
}
}
} else {
winston.warn('Could not find postal code %s', ps4)
}
}
});
});
console.log(my_data);
在for循环之后,我想对my_data中收集的数据进行一些处理。由于findOne似乎是异步的,因此首选的方式是什么?
最佳答案
使用async
库。使用async.eachSearies()
循环循环async
函数并获得所需的输出将很容易。您可以在这里参考link