这是因为Node.js的异步性质还是有任何其他方法来实现这一点?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这是因为Node.js的异步性质还是有任何其他方法来实现这一点?相关的知识,希望对你有一定的参考价值。
这就是我想要做的。
我有一个空数组
var send_data = [] ;
我在使用node.js的“sync-each”npm库之前,我正在使用地图回调函数进行迭代,但遇到了相同的情况。
这是我的代码。
var each = require('sync-each');
client.execute(someQuery,[value],(err,data) => {
var items = data.rows;
each(items,(items,next) => {
// here I am performing some if-else queries and some Cassandra database queries and then pushing the value to my array send_data.
if(items.type == true) {
send_data.push({ value: items.message,flag:true });
}else{
send_data.push({value:items.message,flag:false});
}
},(err,transformedItems)=>{
if(err){
console.log(err);
}
});
});
我的程序运行良好而没有出现任何错误,但是当我调用最终输出时,我得到了未列出的数组值列表
[{value:1},{value:3},{value:2},{value:4}]
有没有办法纠正这个?
答案
您可以使用map函数,这对您的案例更有意义:
var items = [1,2,3,4];
var send_data = items.map((item)=>({value:item}));
console.log(send_data);
以上是关于这是因为Node.js的异步性质还是有任何其他方法来实现这一点?的主要内容,如果未能解决你的问题,请参考以下文章