IT虾米网

javascript之AJAX promise 调用处理

Nancy 2025年01月19日 程序员 46 0

我有一个 Ember promise 调用,如下所示;

var promise = new Ember.RSVP.Promise(function(resolve, reject) { 
    return $.ajax({ 
    //want this common 
        url: requestUrl, 
        type: type, // HTTP method 
        dataType: dataType, // type of data expected from the API response 
        contentType: 'application/json; charset=utf-8', 
        data: JSON.stringify(postData) 
    }) 
    .done(function(data, status, xhrObject) { 
    //But want this to be different 
      // resolve call 
    }) 
    .fail(function(xhrObject, status, error){ 
      // reject call 
    }); 
}) 

我的问题是我可以使用 $.ajax() 的通用代码,但对 did() 回调有不同的实现 我可以通过从调用位置传递一些参数来检查这一点。

所以基本上,我想要

if (someparam == 'handleDone1') 
    call resolve(data) 
else 
    call resolve({data}) 

请您参考如下方法:

您当前正在通过将函数表达式硬编码到其中来将函数传递给 done

用变量替换它。将值作为函数参数传递给该变量。

或者,这里根本不要使用done。只需返回 $.ajax() 的返回值并在调用函数中调用 done() 即可。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!