Mr *_*Guy -1 asynchronous function simultaneous infinite-loop google-apps-script
我有两个要同时运行的函数,但我不能让它们单独运行,因为一个函数包含一个无限循环while(true)
。JavaScript 的问题是,如果你在哪里运行两个函数,它会在运行下一个之前完成该函数的运行;所以如果我用while(true)
循环运行一个函数,它永远不会移动到下一个函数。
如果你还不明白,这是我的代码:
function onOpen(){ // Google Apps Script trigger
infLoop() //how to run both of these functions at the same time?
runScript()
}
function infLoop(){ //inf loop.
while(True){
Utilities.sleep(100)
DocumentApp.getActiveDocument()
.setname("dont change this name")
}
}
function runScript(){
//code...
}
Run Code Online (Sandbox Code Playgroud)
The*_*ter 10
Google 应用程序脚本同步执行。大多数情况下,不可能同时/并行处理。根据您的脚本,您似乎希望两个函数在 onOpen 上同时运行。可能的解决方法(有些未测试):
onOpen()
将运行infLoop()
onOpen()
将运行runScript()
runScript()
onOpen()
将运行infLoop()
如果打开侧边栏或从 Web 应用程序打开工作表,则可以通过google.script.run
(异步运行)重复调用服务器功能
这里可以运行一个函数 6 分钟(当前运行时间)。但是通过重复调用服务器函数,可以长时间运行该函数(最多90分钟/天=当前触发运行时间配额/天)
doGet()
执行该函数,.fetchAll
则可以用于多个函数的异步。onChange
可能会被触发。如果触发,通过 sheet api 所做的每个更改都会导致 onChange 异步运行。