ajax中的Javascript回调函数
我该怎么做ajax中的Javascript回调函数,javascript,Javascript,我该怎么做 function DoStuffAndCallBack(callback){ $.get( "ajax/test.html", function( data ) { callback(); }); } DoStuffAndCallBack(DoneFunction); function DoneFunction(){ console.log('done stuff'); } 我得到的“回调”是未定义的。是否有办法做到这一点,我知道有承诺,但
function DoStuffAndCallBack(callback){
$.get( "ajax/test.html", function( data ) {
callback();
});
}
DoStuffAndCallBack(DoneFunction);
function DoneFunction(){
console.log('done stuff');
}
我得到的“回调”是未定义的。是否有办法做到这一点,我知道有承诺,但在这种情况下我如何做到这一点。看起来“回调”正在失去内部函数(即ajax调用)中的上下文
试试这个-
function DoStuffAndCallBack(callback){
this.callback = callback;
var self = this;
$.get( "ajax/test.html", function( data ) {
self.callback();
});
}
DoStuffAndCallBack(DoneFunction);
function DoneFunction(){
console.log('done stuff');
}
我不明白为什么这样做不起作用。引用的代码很好,问题出在引用的代码之外。一个可能的原因(从我团队中的错误数量猜测):可能您将回调函数定义为
DoneFunction=function()
,而不是function DoneFunction()
?您能否给出console@ionescu VICTOR中打印的完整错误,它为什么会失去上下文?请参阅此处,这里有很好的解释。在回拨的情况下,我们需要显式设置“this”