我有一个 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()
即可。