0

非同期関数を呼び出す関数があります。私の例ではajaxを使用していますが、実際には非同期です。

ajax呼び出しを成功させるために、追加情報を追加しようとしています。

発生する順序:

-私の関数は、paramが$.ajax呼び出しで呼び出されます。

-私の関数は$.ajax.success呼び出しに1行のコードを追加する必要があります

私のコードは次のようなものです:

function myFunct(settings, callback){
   if(!callback)return;
   var x = 100;
   //here is where i have issues, as i want 
   //to be able to adjust the success function
   // to also have 1 line of code, a decrementer.
   //I want to do something like settings.success = "x--;" + settings.success;

   callback(settings);

   //I also wasnt sure if you could wrap 'callback' 
   //with a success function when the inner success function executes
}

サンプル呼び出し:

 var settings = "";//settings of the ajax call.
 myFunct(settings, function(x){ $.ajax(x);});
4

1 に答える 1

3

コールバックが常に promise オブジェクトを返すようにする場合は、次を使用できます。.done()

function myFunct( settings, callback ) {
    if (!callback) return;
    var x = 100;

    callback(settings).done(function(){
        x--;
    });
}
var settings = { url: "foobar.php" };
myFunct( settings, function(x) {
    return $.ajax(x);
})

念のために言っておきますが、var x = 100単なる例ですよね?現状では範囲外で無意味です。

于 2012-09-26T18:17:50.430 に答える