Javascript 在异步函数中增加一个计数器,然后检查它是否等于j,这是错误的?值得一读解释-异步/await@SeanMC-我明白你的意思,但这个问题实际上并没有显示任何数组,所以看起来这个问题实际上并不是关于迭代数组(或某个iterable)with是for/of的主题

Javascript 在异步函数中增加一个计数器,然后检查它是否等于j,这是错误的?值得一读解释-异步/await@SeanMC-我明白你的意思,但这个问题实际上并没有显示任何数组,所以看起来这个问题实际上并不是关于迭代数组(或某个iterable)with是for/of的主题,javascript,asynchronous,for-loop,synchronization,Javascript,Asynchronous,For Loop,Synchronization,在异步函数中增加一个计数器,然后检查它是否等于j,这是错误的?值得一读解释-异步/await@SeanMC-我明白你的意思,但这个问题实际上并没有显示任何数组,所以看起来这个问题实际上并不是关于迭代数组(或某个iterable)with是for/of的主题。这是我读过的JS中异步行为的最清晰的例子之一。你有博客吗?ECMAScript示例很好地演示了let可以做什么。所有答案中的AsynchronouseProcess是否都是某种占位符?我得到的是“未定义”asyncronouseProcess


在异步函数中增加一个计数器,然后检查它是否等于
j
,这是错误的?值得一读解释-异步/await@SeanMC-我明白你的意思,但这个问题实际上并没有显示任何数组,所以看起来这个问题实际上并不是关于迭代数组(或某个iterable)with是
for/of
的主题。这是我读过的JS中异步行为的最清晰的例子之一。你有博客吗?ECMAScript示例很好地演示了
let
可以做什么。所有答案中的
AsynchronouseProcess
是否都是某种占位符?我得到的是“未定义”
asyncronouseProcess
是原始问题的一部分,所以是的,如果它给出“未定义”,这是正常的。如果您想检查原始问题以及建议的解决方案的工作方式,可以将其替换为任何异步函数。例如:
函数asycronouseProcess(fn){setTimeout(fn,100);}
循环的每个迭代是否会等待?@Shamoon yes。它将等待(如果asycronouseProcess()返回承诺)
var i;
var j = 10;
for (i = 0; i < j; i++) {

    asynchronousProcess(callbackFunction() {
        alert(i);
    });
}
someArray.forEach(function(item, i) {
    asynchronousProcess(function(item) {
        console.log(i);
    });
});
var j = 10;
for (var i = 0; i < j; i++) {
    (function(cntr) {
        // here the value of i was passed into as the argument cntr
        // and will be captured in this function closure so each
        // iteration of the loop can have it's own value
        asynchronousProcess(function() {
            console.log(cntr);
        });
    })(i);
}
var j = 10;
for (var i = 0; i < j; i++) {
    asynchronousProcess(i, function(cntr) {
        console.log(cntr);
    });
}
const j = 10;
for (let i = 0; i < j; i++) {
    asynchronousProcess(function() {
        console.log(i);
    });
}
async function someFunction() {
    const j = 10;
    for (let i = 0; i < j; i++) {
        // wait for the promise to resolve before advancing the for loop
        await asynchronousProcess();
        console.log(i);
    }
}
 function someFunction() {
     let promises = [];
     for (let i = 0; i < 10; i++) {
          promises.push(asynchonousProcessThatReturnsPromise());
     }
     return Promise.all(promises);
 }

 someFunction().then(results => {
     // array of results in order here
     console.log(results);
 }).catch(err => {
     console.log(err);
 });
for (i = 0; i < j; i++) {
    asycronouseProcess(function (i) {
        alert(i);
    }.bind(null, i));
}
for (i = 0; i < j; i++) {
    let k = i;
    asycronouseProcess(function() {
        alert(k);
    });
}
for (i = 0; i < j; i++) {
    asycronouseProcess(function(i) {
        return function () {
            alert(i)
        }
    }(i));
}
  var i;
  var j = 10;
  for (i = 0; i < j; i++) {
    await asycronouseProcess();
    alert(i);
  }
function asyncProcess() {
  return new Promise((resolve, reject) => {
    asycronouseProcess(()=>{
      resolve();
    })
  })
}