1

次の再帰関数を機能させようとしていますが、エラーが発生し続けます(次のコード)。

var checkStatus = function(jobID) {
        $.ajax({
            type: 'post',
            url: '/admin/process/check-encode-status.php',
            data: {jobID: jobID},
            success: function(data) {
                if (data == 'processing') {
                checkStatus(jobID).delay(2000);
                } else {
                    $("#videoOutput").html(data);
                }
            }
        });
     };

私が受け取っているエラーは次のとおりです。checkStatus(jobID) is undefined

すべてが正常に機能しているようです。Firebugはこの警告をスローしているだけです。関数はそれ自体を繰り返し、jobIDを送信し、PHPスクリプトから「処理」を受け取ります。

以前は再帰的に使用していたのと同様のスクリプトがありましたsetTimeout()が、関数の呼び出しとともにjobIDを渡す方法がわかりませんでした(エラー)。

何か案は?ありがとう!

4

1 に答える 1

3

を削除するだけ.delay()で、エラーが解消されます。setTimeout代わりに使用する必要があります。

var checkStatus = function (jobID) {
    $.ajax({
        type: 'post',
        url: '/admin/process/check-encode-status.php',
        data: {
            jobID: jobID
        },
        success: function (data) {
            if (data == 'processing') {
                setTimeout(function() { // <-- send an anonymous function
                    checkStatus(jobID); // <--    that calls checkStatus
                }, 2000);
            } else {
                $("#videoOutput").html(data);
            }
        }
    });
};

これは、checkStatus()明示的に何も返さないため、を呼び出そうとしているため.delay()ですundefined

于 2011-02-18T20:09:30.680 に答える