0

私はこのJavaScriptメソッドを持っています:

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

迷っています。現在、「最大スタック サイズを超えました」というエラーが表示されています。

このメソッドの目的は、非同期関数によって var が「0」になるまで待機することです。

これを行うより良い方法はありますか?
このエラーを回避するにはどうすればよいですか?

4

3 に答える 3

4

waitcheck関数を に渡すのではなく、関数を再帰的に呼び出していますsetTimeout

でこれを行いますelse

setTimeout(waitcheck, 2000)

waitグローバルがこの関数の外で正しく設定されていると仮定すると、コードは機能するはずです。

于 2013-08-02T19:22:31.560 に答える
0

関数名の括弧を削除します。(参照として渡すのではなく、その関数が呼び出されるようにしています。)

そのようです:

function waitcheck(){
        if(wait == 0){
            offlineUpload()
        }
        else{
            setTimeout(waitcheck, 2000)
        }
    }
于 2013-08-02T19:23:43.310 に答える