我们可以在这样的链中进行回调吗?
Widget.update(...).onUpdate(function(data){
console.log('updated');
});
当前代码,
var Gateway = {};
Gateway.put = function(url, data, callback) {
$.ajax({
type: "POST",
dataType: "xml",
url: url,
data: data,
async: true,
success: function (returndata,textStatus, jqXHR) {
callback(returndata);
}
});
};
var Plugin = function() {};
Plugin.prototype = {
update : function(options, callback) {
/// other stuff
Gateway.put($url, $data, function(data){
callback(data);
}
return this;
}
}
使用情况,
var Widget = new Plugin();
Widget.put({
button: options.button
}, function(data){
console.log('updated');
});
但理想情况下,
Widget.update(...).onUpdate(function(data){
console.log('updated');
});
编辑:
位于jsfiddle .
最佳答案
您尝试做的事情将会起作用,但是您需要传递回调来更新
Widget.update(yourOptions, function(data){
console.log('updated');
});
您还可以直接返回 ajax 请求并链接到它
var Gateway = {};
Gateway.put = function(url, data) {
return $.ajax({
type: "POST",
dataType: "xml",
url: url,
data: data,
async: true
});
};
var Plugin = function() {};
Plugin.prototype = {
update : function(options) {
/// other stuff
return Gateway.put($url, $data);
}
}
var Widget = new Plugin();
Widget.update(yourOptions).done(function() {
console.log('updated');
});
关于javascript - 在链中进行回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28114460/