Скажем, у меня есть массив и функция A:выполнить функцию от элементов массива в последовательности
var array = ['a', 'b', 'c'];
function A(p) { ... };
теперь я хочу передать каждый элемент array
функционировать A
, и хочет, чтобы они были выполнены в последовательном заказ. обычно проблем не будет. Я могу сделать:
array.forEach(function(item) {
A(item);
}
однако, если есть некоторые асинхронные действия в A
, все становится перепутались. поэтому вопрос стоит:
Как я могу выполнить их упорядоченное, даже если в A есть асинхронные действия?
Под этим я подразумеваю, что A ('b') должен быть выполнен после завершения A ('a') (включая все асинхронные действия там).
Я полагаю, что, должно быть, некоторые утилиты уже делали такие вещи. может кто-то пролил мне немного света?
ли вы пытаетесь передать функцию? A как параметр foreEach вместо его обертывания? – fubbe
В вашей текущей форме это в основном невозможно, так как функция 'A' принимает только один параметр и не имеет возможности уведомлять сервер, когда он завершает свои работы (обратные вызовы), поэтому сервер не может решить, будет ли' A ('b') 'завершен или нет. – fuyushimoya
@fubbe Я думаю, это работает так же. нет никаких гарантий асинхронных действий в A. – yaoxing