[英]synchronous for in loop in node.js
我正在使用快速框架在node.js Web应用程序中工作,我需要从mysql数据库中获取结果。 我想获得同步结果。 有可能的。 请提出建议。 例如:
result = [{id:4,is_parallel:'No',name:'Pankaj'},{id:5,is_parallel:'Yes',name:'uu'},{id:6,is_parallel:'No',name:'kk'}]
for(val in result){
if(result[val].is_parallel=='No'){
var parallelArray = {};
parallelArray.id = result[val].id;
parallelArray.name = result[val].name;
newArray.push(parallelArray);
console.log(newArray);
}else{
$sql ='select id,process_wf_id from process_workflow_parallel_branch where process_wf_id='+result[val].id+'';
connection.query($sql,
function(err, results) {
if(err){
callback(err,null);
}else{
if(results.length>0){
for(val in results){
//
}
}
}
});
}
}
就您使用connection.query
,不可能同步接收结果,因为该函数是异步的,您无法避免强制将其强制为同步。 而且,在可能的地方要依靠异步,因为这样做的风险是否则会阻塞操作(例如, writeFileSync
),这完全违反了node.js的用途。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.