whileループ内でgoogle.script.run, the asynchronous client-side JavaScript API provided by Google Scriptsを使用しようとしています。私はgoogle.script.runへの呼び出しが非同期であることを理解しているので、グローバル変数 'window.i'をループの繰り返しに使用しようとしました。非同期google.script.runの成功時にループをインクリメント
このコードを実行すると、残念なことにwindow.i ++が発生せず、ブラウザがフリーズします。
ここで私はに苦しんでいたコードスニペットです:
var iterations = 5;
window.i = 0;
while (window.i < iterations) {
google.script.run
.withSuccessHandler(function(){
window.i++;
})
.sendNow();
}
は、私は成功コールバックにループ変数をインクリメントすることができます任意の方法はありますか?
なぜ非同期の成功ハンドラが必要ですか?外部とwhileループでそれを増やしてみませんか? whileループは非同期成功コールバックを待たないからです。それはちょうどループを実行し続けるだけで、あなたのブラウザはただちにすべての要求を一斉に起動する – kumkanillam
@kumkanillamをハングアップします。 sendNow()がシーケンシャルであることが重要です。最初の実行後に残りのレコードのみを処理します。 –