Можно ли отменить MSI, который был запущен программным способом, без взаимодействия с пользователем?

Как указано в комментариях, вы создаете 1000 тайм-аутов за 500 мс одновременно - через 500 мс все они будут выполнены. Вы хотите увеличить время ожидания для каждой запланированной функции:

setTimeout(function() {
    // do something
}, count * 500);

Однако создание 1000 тайм-аутов сразу не является хорошей идеей. Лучше использовать setInterval или вызывать setTimeout «рекурсивно», пока не будет достигнут счет 1000, так что вы будете иметь только один активный тайм-аут за раз.

var count = 0;
function update() {
    // do something
    if (++count < 1000)
        setTimeout(update, 500);
    // else everything is done
}
update();

Кроме того, если вы намерены создавать тайм-ауты в цикле, убедитесь, что знакомы с замыканиями и их поведение при доступе к переменным счетчика после того, как цикл запущен.

0
задан Brian T Hannan 25 February 2015 в 18:05
поделиться