为什么循环中的函数只工作一次?
Why function in a loop is working only once?
我正在使用 Google 应用脚本和 JQuery 开发进度条。
当我点击提交时,下面的代码 运行:
var i=0;
while (i<100){
var prog=google.script.run.countTime();
i+=prog;
button.progressIncrement(i);
}
进度条仅进给 10% 并停止执行。
countTime()函数不是很重要(暂时只有returns10):
function countTime(){
return 10;
}
但如果我删除该功能,它会工作 (100%):
while (i<100){
var prog=10;
i+=prog;
button.progressIncrement(i);
}
如果我删除循环并编写如下内容:
var i=0;
var prog=google.script.run.countTime();
i+=prog;
button.progressIncrement(i);
var prog=google.script.run.countTime();
i+=prog;
button.progressIncrement(i);
var prog=google.script.run.countTime();
i+=prog;
button.progressIncrement(i);
var prog=google.script.run.countTime();
i+=prog;
button.progressIncrement(i);
var prog=google.script.run.countTime();
i+=prog;
button.progressIncrement(i);
(....)
进度条也可以达到 100%。
while 里面的函数有什么问题?
google.script.run() doesn't return a value, it runs asynchronously. You pass it a callback function to get a value back from it via withSuccessHandler()。例如在您的客户端代码中:
function onSuccess(valueFromServer) {
// do something with valueFromServer
}
google.script.run.withSuccessHandler(onSuccess).doSomethingServerSide()
服务器端:
function doSomethingServerSide() {
return valueFromServer
}
我正在使用 Google 应用脚本和 JQuery 开发进度条。 当我点击提交时,下面的代码 运行:
var i=0;
while (i<100){
var prog=google.script.run.countTime();
i+=prog;
button.progressIncrement(i);
}
进度条仅进给 10% 并停止执行。
countTime()函数不是很重要(暂时只有returns10):
function countTime(){
return 10;
}
但如果我删除该功能,它会工作 (100%):
while (i<100){
var prog=10;
i+=prog;
button.progressIncrement(i);
}
如果我删除循环并编写如下内容:
var i=0;
var prog=google.script.run.countTime();
i+=prog;
button.progressIncrement(i);
var prog=google.script.run.countTime();
i+=prog;
button.progressIncrement(i);
var prog=google.script.run.countTime();
i+=prog;
button.progressIncrement(i);
var prog=google.script.run.countTime();
i+=prog;
button.progressIncrement(i);
var prog=google.script.run.countTime();
i+=prog;
button.progressIncrement(i);
(....)
进度条也可以达到 100%。
while 里面的函数有什么问题?
google.script.run() doesn't return a value, it runs asynchronously. You pass it a callback function to get a value back from it via withSuccessHandler()。例如在您的客户端代码中:
function onSuccess(valueFromServer) {
// do something with valueFromServer
}
google.script.run.withSuccessHandler(onSuccess).doSomethingServerSide()
服务器端:
function doSomethingServerSide() {
return valueFromServer
}