我有这个javascript方法:

function waitcheck(){
        if(wait == 0){
            offlineUpload()
        }
        else{
            setTimeout(waitcheck(), 2000)
        }
    }


我迷路了,现在我遇到一个错误,提示“超出最大堆栈大小”

此方法的目标是等待异步函数将var变为“ 0”。

有一个更好的方法吗?
如何解决这个错误?

最佳答案

您是递归地调用waitcheck函数,而不是将该函数传递给setTimeout

在您的else中执行此操作:

setTimeout(waitcheck, 2000)


假设在此函数之外正确设置了wait全局变量,则代码应该可以正常工作。

09-20 15:32