我正在使用这样的承诺:
var restClient = {
serveRequest: function(rUrl, type, body, rHeaders, rAsync, callback) {
var promise = jQuery.ajax({
url: rUrl,
type: type,
data: body,
headers: rHeaders,
async: rAsync,
contentType: "text/plain",
dataType: "json"
});
promise.then(onSuccess, onError);
},
onSuccess: function(data) {
callback(data);
},
onError: function(msg) {
console.log(msg.responseText);
}
}
如何在promise.then onSuccess中传递参数(回调)?我想稍后在onSuccess方法中使用它。
答案 0 :(得分:6)
我正在使用这样的承诺
嗯,首先,你不应该。 promises的目的是作为异步函数的结果返回,这样你就不再需要回调参数了。你最好这样做
var restClient = {
serveRequest: function(rUrl, type, body, rHeaders, rAsync) {
var promise = jQuery.ajax({
url: rUrl,
type: type,
data: body,
headers: rHeaders,
async: rAsync,
contentType: "text/plain",
dataType: "json"
});
return promise;
}
};
让restClient.serveRequest(…)
的来电者调用.then(…)
。
如何在promise.then onSuccess中传递参数(回调)?
你不需要onSuccess
。直接使用
promise.then(callback, function(msg) {
console.log(msg.responseText);
});
我想稍后在onSuccess方法中使用它。
你做不到。它尝试使用callback
,但这是serveRequest
方法的本地参数 - 因此onSuccess
最多只能是一个本地函数,而不是一个方法。< / p>