请问再这个循环里面已经使用retun,但是已经会继续执行,是什么原因?
发布于 10 年前 作者 youqingkui 3082 次浏览 最后一次编辑是 8 年前
      if (order.length) {
        for (var i = 0; i < order.length; i++) {
          (function (i) {
            mysqldb.query(
              "SELECT goods_name FROM order_goods WHERE order_id =?", [order[i].order_id],
              function (err, rows) {
                if (err) {
                  req.session.error = '出错了';
                  return res.redirect('/checkcode');
                }
                //console.log(rows);
                order[i].goods_name = rows
                order[i].appointment_time = getLocalTime(order[i].appointment_time);


                if (i == (order.length - 1)) {
                  console.log("ok");

                  return res.render(tep, {
                    title: '订单',
                    order: order
                  });
                }
              }
            );
          })(i);
        }
      }

当发生错误时执行到这条语句

if (err) {
      req.session.error = '出错了';
      return res.redirect('/checkcode');
 }

这里已经return 了,但是程序依然会继续执行,请问是什么原因导致?难道node中的return 不能终止语句?谢谢!

1 回复

怎么个继续执行?return只结束当前函数,外层函数是不会结束的,任何语言都一样

回到顶部