关于Node.js中的异步执行流程

时间:2014-07-11 22:38:59

标签: javascript mysql node.js express

好的,我来问一下做出显示Mysql数据任务的最佳方法是什么

¿认为这个流程是正确的吗?

app.get('/demo/:id', function(req, res) {

 var query = csql.query('SELECT * FROM table_videos WHERE id=? LIMIT 1',req.params.id,
 function(error, result){
     if(error){
         datos_video = error;
     }else{
         if (result.length) {
             datos_video = result[0];
         }else{
             datos_video = '0';
         }
     }
 });

 res.render('vid',{datos_video:datos_video});

});

渲染是在咨询之后或之前执行的?

也许做某事更好

app.get('/demo/:id', function(req, res) {

 var query = csql.query('SELECT * FROM table_videos WHERE id=? LIMIT 1',req.params.id,
 function(error, result){
     if(error){
         datos_video = error;

         res.render('vid',{datos_video:datos_video});

     }else{
         if (result.length) {
             datos_video = result[0];

             res.render('vid',{datos_video:datos_video});

         }else{
             datos_video = '0';

            res.render('vid',{datos_video:datos_video});

         }
     }
 });


});

正确的方法是什么?非常感谢你

1 个答案:

答案 0 :(得分:0)

第二种方式是正确的。

第一种方式可能有效,但它可能不会赢,而且你无法接受它。如果你想确保在JavaScript中同步执行,最好使用回调函数,就像你在第二个例子中所做的那样。