Привязка переменной JavaScript и цикл

Как отметил Джон Скит, Rx перенес TPL в .NET 3.5.

Я сделал Nuget (называемый TaskParallelLibrary ) из их System.Threading.dll, для более легкой интеграции.

Вы можете получить его из http://nuget.org/packages/TaskParallelLibrary .

28
задан Russ Cam 4 November 2009 в 23:14
поделиться

2 ответа

Не более того, чем два предложенных вами способа, но вот еще один

for(var it = 0; it < 2; it++)
{
    (function() {
        var m = it;   
        setTimeout(function() {
            alert(m);
        }, 1);
    })(); 
}

По сути, вам нужно зафиксировать значение переменной в замыкании. Этот метод использует немедленно вызываемую анонимную функцию для захвата значения внешней переменной it в локальной переменной m .

Вот Рабочая демонстрация , с которой можно поиграть. добавьте / edit к URL-адресу, чтобы увидеть код

43
ответ дан 28 November 2019 в 02:57
поделиться

Аналогично вышеприведенному решению, но самовызывается внутри функции setTimeout

for(var it = 0; it < 2; it++)
{
    setTimeout(function(cur) {
        return function(){
           alert(cur);
        };
     }(it), 1);
 }
1
ответ дан 28 November 2019 в 02:57
поделиться
Другие вопросы по тегам:

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