小编Pan*_*rma的帖子

为什么Javascript用setTimeout函数同步和异步显示输出?

for(var i = 2;i >= 1;i--) {
  setTimeout(function (i) {
    console.log(i);
  },1000);
  console.log("hii");
}
Run Code Online (Sandbox Code Playgroud)

这段代码给出了输出为

  • HII

  • HII

  • 未定义

  • 未定义

在以下格式中使用setTimeout后,给出不同的输出

for(var i = 2;i >= 1;i--) {
  setTimeout(print(i),5000);
  console.log("hii");
}
function print(i) {
  console.log(i);
}
Run Code Online (Sandbox Code Playgroud)

这段代码给出了输出为

  • 2

  • HII

  • 1

  • HII

我不明白为什么在第二种情况下代码是同步执行的.

javascript node.js

2
推荐指数
1
解决办法
127
查看次数

完成每个循环后如何发送响应

Response.json 应在 foreach 循环完成执行后执行

var todoarr = (req.body.data) ? req.body.data : undefined
    todoarr.forEach(function(element) {
         if(element.done == true) {
             TodoService.removeTodo(element, function(success) {
             });   
         }
        }); 
        res.json("success");
Run Code Online (Sandbox Code Playgroud)

javascript node.js

1
推荐指数
1
解决办法
4389
查看次数

标签 统计

javascript ×2

node.js ×2