2015-10-24 37 views
2

我正在使用快速框架工作node.js web应用程序,我需要得到结果表单mysql数据库。我想要获得同步结果。有可能的。请建议。例如:同步在node.js循环中

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){ 
              // 

             } 
            } 
          } 


          }); 

         } 

        } 

回答

0

至于使用connection.query是不可能同步接收的结果,该功能是异步的,你不能避免的力其它是同步的。此外,在可能的情况下依赖不同步是要走的路,因为风险是在其他方面导致阻塞操作(例如,writeFileSync),并且这仅仅是针对什么node.js的意思。

+0

thx对于你的建议,你的意思是我们无法同步获取数据? –

+0

是和不是。有时,库提供同步和异步方法来执行某些操作(如上所述,一个例子是* node.js *本身的'fs'模块),但通常不鼓励它,除非在极少数情况下, .js *完全相反。 – skypjack

+0

好吧,我们该如何处理这些事情? –