在回调中调用函数本身

时间:2017-12-25 21:27:06

标签: javascript asynchronous callback

我不太确定Title与我的问题有关,很抱歉。

我有调用回调函数的异步函数。所以主要的想法是我想在每次“asyncFunc”完成后调用函数“dodo”。

是否有一些模式?是否有问题与内存泄漏有关?

firestoreRef.update is not a function

2 个答案:

答案 0 :(得分:1)

  

主要想法是我想调用函数" dodo"每次" asyncFunc"完了。

所以只需在那里打电话:

function dodoForever() {
    asyncFunc(function(data) {
        doSmth();
        dodoForever(); // <==
    });
}
dodoForever();

您不需要全球can州和setInterval

答案 1 :(得分:0)

你可以打电话给它。像这样。

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次,这基本上就是你的程序所做的一切。我不能想到一个必要的用例,它在性能方面可能不太公平。

真的想想你为什么试图像这样运行它以及最终目标是什么。