Javascript node.js中循环内的同步

Javascript node.js中循环内的同步,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,我正在使用express框架在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

我正在使用express框架在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的用途完全相反

thx对于您的建议,您的意思是我们无法同步获取数据?是和否。有时,库提供同步和异步方法来执行某些操作(如上所述,node.js本身的
fs
模块就是一个例子),但通常不鼓励这样做,除非在极少数情况下,因为node.js背后的想法恰恰相反。从你发布的代码来看,我不能说。无论如何,使用express,在涉及异步函数的情况下,通常需要调用下一个函数。