繁体   English   中英

在node.js中同步进行循环

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM