Вашего 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()
и опишите, что у вас проблема с заказом, мы, вероятно, помогли бы вам выяснить, как упорядочить асинхронные результаты в правильном порядке.
Обещания являются инструментом выбора для многих, чтобы помочь управлять порядком асинхронных операций, но нам нужно будет увидеть код getID()
, чтобы узнать, как рекомендовать более конкретно, какой код изменить.
Что такое 'getID'? Можете ли вы показать нам, как это реализовано? –
Я предполагаю, что 'getID' выполняется асинхронно. Затем вы должны использовать библиотеку типа [async] (https://github.com/caolan/async) и использовать одну из последовательных функций. – hgoebl
Проверьте мой ответ и введите свой идентификатор getID внутри. Все еще не удается? ¿? ¿Если он все еще не работает, ваш метод async будет getID, как говорят до –