names = ["jack", "matt", "lisa", "jacob"];
names.forEach(function(name) {
getID(name);
});
循环以随机顺序执行。如何强制按顺序执行它们:
答案 0 :(得分:0)
您的forEach()
循环已经按照项目在数组中出现的顺序执行,因此您的问题假设不正确。
你可以很简单地看到:
function log(x) {
var div = document.createElement("div");
div.innerText = x;
document.body.appendChild(div);
}
var names = ["jack", "matt", "lisa", "jacob"];
names.forEach(function(name) {
log(name);
});
所以,如果你看到一些乱序,那可能是因为getID()
包含了一个异步操作。因此,您一次启动四个异步操作,虽然它们是按顺序启动的,但它们并不是按顺序完成的。
如果您向我们展示getID()
的代码并描述您的排序问题,那么我们可能会帮助您弄清楚如何将异步结果排序为正确的顺序。
Promise是许多人帮助管理异步操作顺序的首选工具,但我们需要查看getID()
代码才能知道如何更具体地推荐要更改的代码。