DSP

回调函数(callback)是什么?

2019-07-13 15:59发布

转自:http://www.zhihu.com/question/19801131
你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。

作者:常溪玲
链接:http://www.zhihu.com/question/19801131/answer/13005983
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 ///////////////////////////// 以下为原创:
例如如下 extjs的函数定义: loginClick : function(btn) {
var win = btn.up('window'), loginForm = win.down('form');
if (loginForm.isValid()) {
loginForm.submit({
url : base + '/user/login.html',
method : 'post',
params : 'jsonStr=' + Ext.JSON.encode(loginForm.getValues()),
waitTile : '提示',
waitMsg : '正在提交登录信息,请等待...',
success : function() {
win.close();
Ext.create('cdkj.controller.index.MainController').init();
},
failure : function() {
win.close();
Ext.Msg.alert('提示', '用户密码错误,请重新输入');
}
});
}
}
解释:当点击按钮时触发点击按钮事件并调用该loginClick函数,其中success : function()和failure : function() 即为 回调函数,意思是当loginForm这个表单提交后返回结果为成功时执行success : function()函数; 返回结果为失败(false)时执行failure : function()函数。