1

以下のコードを使用して待機し、次のループを実行します。

function loop()
{
    setTimeout(function()
    {
        process_number(a[i]);
        i++;
        if (i < a.length)
            loop();
        else
        {
            alert("done!");
        }
    }, 5000);
}

getcomplete時に実行されるjQuery$.getコールバック関数のように変更したいと思います。

$.get("test.cgi", { name: "John", time: "2pm" },
  function(data){
  alert("Data Loaded: " + data);
});

function loop()
{
    //where process_number executed complete, do next loop
    //process_number(a[i]);
    i++;
    if (i < a.length)
        loop();
    else
    {
        alert("done!");
    }
}

関数process_number実行時間は不確実です。

4

2 に答える 2

1

非常に基本的には、関数名をパラメーターとして渡し、引数名を介して呼び出すことができます。これは無名関数でも同様に機能します。

function foo(x,callback)
{
    callback(x);
}

foo("hello",alert)
foo("hello",function(x){alert(x);});
于 2012-04-17T15:53:45.710 に答える
1

loop() 関数にコールバック パラメータを追加し、必要に応じて実行できます。

function loop(callback)
{
    //where process_number executed complete, do next loop
    //process_number(a[i]);

    if (callback) {
        callback();
    }
}

loop(function () {
    alert("continuing...");
});
于 2012-04-17T15:51:52.980 に答える