powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / javascript Чем заменить SetTimeout?
11 сообщений из 11, страница 1 из 1
javascript Чем заменить SetTimeout?
    #38531089
Фотография lans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С интервалом в пару секунд происходит ряд событий. Использую SetTimeout точнее так
Код: javascript
1.
setTimeout(function () {setTimeout(function () {setTimeout(function () {setTimeout(function () {},2000)},2000)},2000)},2000);



Проблема в том что последнее событие не всегда срабатывает, и вообще сама идея с setTimeout что то мне не нравиться, есть ли другое решение задачи?
Спасибо заранее
...
Рейтинг: 0 / 0
javascript Чем заменить SetTimeout?
    #38531115
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
setInterval.
Иди уже пирожками торговать.
...
Рейтинг: 0 / 0
javascript Чем заменить SetTimeout?
    #38531206
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lans, если у тебя одно и то же действие делается на каждом шаге и интервал всегда одинаковый, то используй setTimeout(). Если действия разные или нужно будет менять интервалы, то можно использовать Deferred из jQuery. По сути там внутри тоже будет sitTimeout() просто с более ясным синтаксисом.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
$(document).ready(function() {
    var defer = $.Deferred();
    defer.then(function() {
        return wait2s();
    })
    .then(function() {
        alert("Step 1");
    })
    .then(wait2s)
    .then(function() {
        alert("Step 2");
    })
    .then(wait2s)
    .then(function() {
        alert("Step 3");
    })
    .then(wait2s)
    .then(function() {
        alert("Step 4");
    })
    ;
    
    defer.resolve();
});

function wait2s() { return wait(2000); }

function wait(ms) {
    var deferred = $.Deferred();
    setTimeout(deferred.resolve, ms);
    
    // We just need to return the promise not the whole deferred.
    return deferred.promise();
}



Пример в действии - http://jsfiddle.net/swpwJ/
...
Рейтинг: 0 / 0
javascript Чем заменить SetTimeout?
    #38531209
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeИди уже пирожками торговать.
Без оскорбления никак нельзя было обойтись?
...
Рейтинг: 0 / 0
javascript Чем заменить SetTimeout?
    #38531427
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileShSergeИди уже пирожками торговать.
Без оскорбления никак нельзя было обойтись?
Человек уже минимум 7 лет в этом бизнесе. Что здесь ещё сказать?!
...
Рейтинг: 0 / 0
javascript Чем заменить SetTimeout?
    #38531635
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeЧеловек уже минимум 7 лет в этом бизнесе. Что здесь ещё сказать?!
Это не дает повода оскорблять. Можно было просто промолчать.
...
Рейтинг: 0 / 0
javascript Чем заменить SetTimeout?
    #38531648
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileShSergeЧеловек уже минимум 7 лет в этом бизнесе. Что здесь ещё сказать?!
Это не дает повода оскорблять. Можно было просто промолчать.
Я написал ответ.
...
Рейтинг: 0 / 0
javascript Чем заменить SetTimeout?
    #38532198
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeЯ написал ответ.
Я заметил и поэтому сразу спросил - "Без оскорбления никак нельзя было обойтись?".
...
Рейтинг: 0 / 0
javascript Чем заменить SetTimeout?
    #38533783
Фотография lans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergesetInterval.
Иди уже пирожками торговать.

События все разные!
...
Рейтинг: 0 / 0
javascript Чем заменить SetTimeout?
    #38533784
Фотография lans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazilelans, если у тебя одно и то же действие делается на каждом шаге и интервал всегда одинаковый, то используй setTimeout(). Если действия разные или нужно будет менять интервалы, то можно использовать Deferred из jQuery. По сути там внутри тоже будет sitTimeout() просто с более ясным синтаксисом.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
$(document).ready(function() {
    var defer = $.Deferred();
    defer.then(function() {
        return wait2s();
    })
    .then(function() {
        alert("Step 1");
    })
    .then(wait2s)
    .then(function() {
        alert("Step 2");
    })
    .then(wait2s)
    .then(function() {
        alert("Step 3");
    })
    .then(wait2s)
    .then(function() {
        alert("Step 4");
    })
    ;
    
    defer.resolve();
});

function wait2s() { return wait(2000); }

function wait(ms) {
    var deferred = $.Deferred();
    setTimeout(deferred.resolve, ms);
    
    // We just need to return the promise not the whole deferred.
    return deferred.promise();
}



Пример в действии - http://jsfiddle.net/swpwJ/

Спасибо!
...
Рейтинг: 0 / 0
javascript Чем заменить SetTimeout?
    #38533785
Фотография lans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lansbazilelans, если у тебя одно и то же действие делается на каждом шаге и интервал всегда одинаковый, то используй setTimeout(). Если действия разные или нужно будет менять интервалы, то можно использовать Deferred из jQuery. По сути там внутри тоже будет sitTimeout() просто с более ясным синтаксисом.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
$(document).ready(function() {
    var defer = $.Deferred();
    defer.then(function() {
        return wait2s();
    })
    .then(function() {
        alert("Step 1");
    })
    .then(wait2s)
    .then(function() {
        alert("Step 2");
    })
    .then(wait2s)
    .then(function() {
        alert("Step 3");
    })
    .then(wait2s)
    .then(function() {
        alert("Step 4");
    })
    ;
    
    defer.resolve();
});

function wait2s() { return wait(2000); }

function wait(ms) {
    var deferred = $.Deferred();
    setTimeout(deferred.resolve, ms);
    
    // We just need to return the promise not the whole deferred.
    return deferred.promise();
}



Пример в действии - http://jsfiddle.net/swpwJ/

Спасибо!

То что надо)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / javascript Чем заменить SetTimeout?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]