gpt4 book ai didi

Javascript循环遍历数组异步

转载 作者:行者123 更新时间:2023-12-03 11:25:43 24 4
gpt4 key购买 nike

我正在为在 NodeJS 上运行的游戏制作一个机器人代码,这个函数应该做的是循环遍历一个向量数组,然后让机器人转到每个向量。

然而,它实际上在做的是告诉机器人同时运行到所有向量,这样它就会弹出然后运行到数组中的最后一个向量:

function digSchedule() {
var arrayLength = blocksToMine.length;
for (var i = 0; i < blocksToMine.length; i++) {
console.log(i);
scaffoldTo(blocksToMine[i]);
}
...
}

函数 scaffoldTo()需要运行,然后等待机器人执行上述功能,然后为数组中的下一个元素运行它,但我不知道该怎么做。

最佳答案

有几种方法可以实现这一点。第一个可能是传递带有“下一个要调用的函数”的回调(可能是 scaffoldTo() )。您可以使用 .bind()使用迭代器索引创建引用 i .

或者,您可以设置一个循环 Promise s,根据定义其具有 .then()一旦 promise 被解决就执行的方法。

最后,async/await模式与 Promises 类似,但有些人认为它更清晰,而且似乎赢得了炒作大战:https://hackernoon.com/6-reasons-why-javascripts-async-await-blows-promises-away-tutorial-c7ec10518dd9 .

回调(解决方案 1)将在任何版本的 JS 中可用。 Promise 通常随库一起提供,并且在 ES6 中具有 native 支持。 Async/await 是 ES2017 中的一个提议(?),并且通常得到很好的支持。

关于Javascript循环遍历数组异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44980388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com