Я немного запутался, как определить, когда асинхронная функция, вызванная несколько раз из другой, завершает вызов из последней итерации:
function MainAsyncFunction(callback) {
for (var i = 0; i < 10; i++) {
SubAsyncFunction(function(success) {
if (i >= 10 && success) { // THIS IS WRONG?!
callback(true); // happens too early
}
});
}
};
function SubAsyncFunction(callback) {
SubSubAsyncFunction(function() {
callback(true);
});
}
То, что я делаю, - это вызов службы Google Distance Matrix , который имеет ограничение в 25 пунктов назначения, поэтому мне приходится разбивать мой массив пунктов назначения, чтобы вызывать эту службу несколько раз, но я не не понимаю, когда это закончится.
и в основном бите кода я могу сказать, что вторая итерация цикла в MainAsyncFunction еще не завершилась при обратном вызове.
Я думаю, что моя проблема в том, что я не разбираюсь в порядке событий при работе с асинхронными функциями в JavaScript ... пожалуйста, объясните, как обычно достигается предмет.