を超えている:私はそれを起動するとポーリングAjaxの機能は、私は、次のポーリング機能を持っていると仮定し、コールスタックに
function pollingFunc(taskId){
setTimeout(function() {
$.ajax({
url: '/endpoint',
type: 'POST',
data: { 'celery_task_id': taskId },
success: function(response){
if(response.celery_ready) {
console.log('CELERY IS READY')
} else {
console.log('polling')
pollingFunc(response.task_id)
}
}
})
}, 5000);
}
、成功コールバックが呼び出されることはありませんかそれはあるかもしれないが、私のconsole.logsは表示されません。代わりにしばらく後に私は得る
Uncaught RangeError: Maximum call stack size exceeded
私の機能は再帰的に実行されているが、私はそれをしたいと思う方法で実行しています。再帰呼び出しの開始がコンソールに表示される前にコンソールログをリースしたいと思っていますが、そうではありません。バックエンドのエンドポイントが正常に動作していることを確認してjsonを返すので、JavaScriptコードに何か不足していると思われます。誰もが考えている?
私はエラーハンドラと 'console.log'を追加します。あなたはネットワークのパネルであなたが200の応答を得ていることを確認しましたか? – winhowes
これが役立つのかどうかは不明ですが、ここに記載されているconsole.logで問題が発生している可能性があります。http://stackoverflow.com/questions/8395718/javascript-funky-array-mishap – Blue
ネストされた関数呼び出しの意味で、コードに再帰はありません。 'setTimeout'は非同期で、' $ .ajax'もそうです。 'pollingFunc'の実行には呼び出しスタックの別の' pollingFunc'がありません。何か他のことが起こっている、あなたの質問に表示されていません。 – Igor