6

運が悪かったので、延期されたJQueryを使用して、次のシナリオを実装しようとしています。

据え置きAPIのどの部分を使用し、次のことを実現するために呼び出しをどのように構成しますか。

serviceAへの最初のajaxcallAは、IDのリストを取得します

この呼び出しが戻るまで待ちます

次に、serviceBへのnajax呼び出し、callAによって返されたリストからのIDを使用した各呼び出し

すべてのserviceB呼び出しが戻るまで待ちます

次に、serviceCへの最後のajax呼び出し

4

1 に答える 1

12

あなたはこのようにすることができます(多かれ少なかれ擬似コード):

(function() {
    // new scope
    var data = []; // the ids coming back from serviceA

    var deferredA = callToServiceA(data); // has to add the ids to data

    deferredA.done(function() { // if callToServiceA successful...
        var deferredBs = [];

        for i in data {
            deferredBs.push(callToServiceB(...));
        }

        $.when.apply($, deferredBs).then(callToServiceC); 
    });

}());

関数は、callToServiceXによって返されるpromiseオブジェクトを返す必要があります$.ajax

dataを使用して共有スコープを使用するよりも「クリーンな」ソリューションがあるかもしれませんresolveが、セットアップは少し難しくなります(必ずしも読みやすくなるとは限りません)。

于 2011-07-11T09:33:24.970 に答える