node.js中的in循环同步

时间:2015-10-24 19:50:32

标签: javascript node.js asynchronous

我正在使用快速框架工作的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){
                                            //

                                        }   
                                    }
                             }


                            });

                        }

                     }  

1 个答案:

答案 0 :(得分:0)

就你使用connection.query而言,不可能同步接收结果,因为该函数是异步的,你无法避免强制它同步。此外,在可能的情况下依赖异步是可行的,因为风险是阻塞操作(例如,writeFileSync),这只是针对什么 node.js 是为了。