javascript 回调退出关闭
javascript closure with callback exit
我确定我遗漏了一些明显的东西,因为它在 javascript 世界已经有一段时间了,但我的搜索没有产生任何结果,只有关于闭包基础知识的博客和导师。所以,我有一个接受回调的函数,它执行另一个也接受回调的函数,它永远不会完成执行,只是 returns。例如
function first(y,z,callback){}
function second(x,y,callback){}
所以点击事件。
first(1,2,function(){
second(1,2,function(){
//do something....
})//exits after exec.
alert('this never get fired');
})
如何防止第二个函数的回调退出并允许执行块中的其余代码?任何提示或提示将不胜感激。谢谢
应该更改 "function first(y,z,function(){})" 以接受可以在函数体中调用 back/execute 的函数参数,如下所示:
function first(y,z,fn){fn();}
function second(x,y,fn){fn();}
var btn = document.getElementsByTagName('button')[0];
btn.addEventListener('click', function () {
first(1,2,function(){
second(1,2,function(){
//do something....
})//exits after exec.
alert('this never get fired');
});
});
我确定我遗漏了一些明显的东西,因为它在 javascript 世界已经有一段时间了,但我的搜索没有产生任何结果,只有关于闭包基础知识的博客和导师。所以,我有一个接受回调的函数,它执行另一个也接受回调的函数,它永远不会完成执行,只是 returns。例如
function first(y,z,callback){}
function second(x,y,callback){}
所以点击事件。
first(1,2,function(){
second(1,2,function(){
//do something....
})//exits after exec.
alert('this never get fired');
})
如何防止第二个函数的回调退出并允许执行块中的其余代码?任何提示或提示将不胜感激。谢谢
应该更改 "function first(y,z,function(){})" 以接受可以在函数体中调用 back/execute 的函数参数,如下所示:
function first(y,z,fn){fn();}
function second(x,y,fn){fn();}
var btn = document.getElementsByTagName('button')[0];
btn.addEventListener('click', function () {
first(1,2,function(){
second(1,2,function(){
//do something....
})//exits after exec.
alert('this never get fired');
});
});