@madion

Как сделать выполнение кода асинхронно?

Приветствую друзья!
Не могу разобраться с асинхронностью в JS. Помогите, пожалуйста.
Благодаря гуглению, написал такой код, который, как я думал, поможет мне справиться с моей задачей:
$.when.apply($, $('.category-content .items .item').map(function(index, item) {
    var total = $(item).find('.price').text().trim(); 

    (function(index, value) {
        var wait = index * 1000 + 1000;
        setTimeout(function() {
            console.log("Index1: " + index);
        }, wait)
    })(index);

    console.log("Index2: " + index);

    return total;

})).then(function(result) {
    console.log("Все!");
});


На выходе получаю это:

Index2: 0
Index2: 1
Index2: 2
Все!
Index1: 0
Index1: 1
Index1: 2


А требуется получить такое:

Index1: 0
Index2: 0
Index1: 1
Index2: 1
Index1: 2
Index2: 2
Все!


Как это сделать?
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 1
а вы setTimeout используете для асинхронности или для имитации какого-то долгого процесса?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы