2

こんにちは皆さん、ここで助けが必要です。私の悪い思考の脳に:

私はオブジェクトを持っています:

 var ch =  [function1(), function2(), function3(), function4()];

関数の例:

function function1()
            { 

                    return $.ajax({
                        type: "GET",
                        url:url,
                        dataType:"jsonp",
                        success: function(data){}
                    });
            }

私はどういうわけかこのオブジェクトをここに渡す必要があります:

$.when(function1(), function2(), function3(), function4()).done({
  function(data1, data2, data3, data4)
});

もちろん、この考えは間違っています:

$.when(ch) -- which is wrong 

これを手伝ってもらえますか?それともやり方が間違っているのでしょうか?私にアドバイスできますか?

ありがとう !

4

1 に答える 1

4

Deferred配列内のすべてのアイテムが解決されたときにアクションを実行したいと言っていると思います。applyこれは、関数に与えられた引数として配列のメンバーを使用するメソッドを使用すると非常に簡単です。

$.when.apply($, ch).done(function(data1, data2, data3, data4) {

applyメソッドの詳細については、MDN ドキュメントを参照してください。要約すると、最初の引数は呼び出しのコンテキスト (つまりthis、関数内にあるもの。ここで$は、jQuery オブジェクトとして保持する必要があります) であり、2 番目の引数は、メンバーが引数として関数に適用される配列です。 .

于 2011-12-15T21:11:56.210 に答える