我不太确定Title与我的问题有关,很抱歉。
我有调用回调函数的异步函数。所以主要的想法是我想在“asyncFunc”完成后每次都调用函数“dodo”。
那有什么模式吗?是否存在与内存泄漏相关的问题?
var can = true;
function dodo() {
if(can)
{
can = false;
asyncFunc(function(data) {
doSmth();
can = true;
});
}
}
setInterval(dodo, 0);
主要想法是我想在“asyncFunc”完成后每次调用函数“dodo”。
所以只需在那里打电话:
function dodoForever() {
asyncFunc(function(data) {
doSmth();
dodoForever(); // <==
});
}
dodoForever();
你不需要全球的can
州和setInterval
。
你可以打电话给它。像这样。
var can = true;
function dodo() {
if(can)
{
can = false;
asyncFunc(function(data) {
dodo(); // this will run `dodo` function again.
doSmth();
can = true;
});
}
}
setInterval(dodo, 0);
正如评论中提到的那样,这将使筹码上升。你有dodo
每0ms运行一次。这基本上会将dodo
称为TON次,这基本上就是你所有的程序。我不能想到一个必要的用例,它在性能方面可能不太公平。
真的想想你为什么试图像这样运行它以及最终目标是什么。