我正在使用Express中间件在NodeJS 8.5版中构建应用程序。
我使用异步模块循环对象数组。 async.each方法遍历每个对象并处理每个元素。
每个对象将根据属性以不同的方式处理。
我现在拥有的方法是在async.each循环体内调用一堆同步方法。但是,我知道这不是“适当的”。节点方式,因为一切都应该是异步的。
如何构建它以正确使用异步方法?
async.each(elements_all, (element_original, callback) => {
// Create new array
const elements_processed = [];
// If element has order number property
if (element_original.order_number) {
element_original.order_number = processToDisplay(element_original.order_number); //This is a synchronous call
}
// If element has po number property
if (element_original.po_number) {
element_original.po_number = processToDisplay(element_original.po_number);
}
// If element has item price property
if (element_original.item_price) {
element_original.item_price = processToDisplay(element_original.item_price);
}
// Push to the return array
entities_processed.push(element_original);
callback();
}, (err) => {
if (err) {
res.json({
server_error: true
});
} else {
res.json(entities_processed);
}
});