まず、私はJavaScriptに比較的慣れていないことを認めなければなりませんが、最近、jQueryajax関数を使用しているときに同じ問題が発生しました。POSTを介していくつかのドキュメントを特定の順序でサーバーにアップロードする必要がありました。すべてのコールバックをネストすると、完全に混乱したコードが生成されます。答えを読んだ後、解決策を考え、うまくいく解決策を思いつきました。さまざまなコールバック呼び出しを区別するために、switch句を持つ1つの関数のみを使用します。
var callback = function(sCallIdentifier, callbackParameters){
switch(sCallIdentifier){
case "ajaxOne":
doYourStuff(callbackParameters); //do your stuff for ajaxOne
ajaxTwo(function(newCallbackParameters){
/*define a anonymous function as actual method-callback and pass the call-identifier, together with all parameters, to your defined callback function*/
callback("ajaxTwo", newCallbackParameters);
});
break;
case "ajaxTwo":
doYourStuff(callbackParameters);
ajaxThree(function(newCallbackParameters){
callback("ajaxThree", newCallbackParameters);
});
break;
case "ajaxThree":
doYourStuff();
break;
}
});
これが良くない場合は、私に知らせてください。私が言ったように、私はJavaScriptの専門家ではありませんが、私にとってはかなりうまくいきました。
最高、ルネ
編集:
しばらくして、Promisesがこの問題を解決するためのはるかに優れたアプローチであることがわかりました。