javascript - JavaScript 等待变量改变
问题描述
有没有办法让我的代码按照评论中描述的逻辑顺序工作?
var globalVariable;
async function function1(){
let sqlTableName = "work_orders"
//Async call to google app script, which functions as backend
//It is basically: promise.then(callback)
google.script.run.withSuccessHandler(databaseReturn).getDatabaseTableContent(sqlTableName);
//Synchronous call to wait for globalVariable to change to 1
await waitForAnswer();
//Some code to be extecuted after globalVariable is equal to 1
console.log("globalVariable: ", globalVariable)
}
function waitForAnswer(){
//Some sort of loop to check if variable equals to 1
while (globalVariable != 1){
//Maybe a timeout function
//Or something else
console.log("waiting...");
}
return;
}
function databaseReturn(dataFromDatabse){
console.log(dataFromDatabse);
globalVariable = 1;
return;
}
function1();
我已经尝试了数周来开启和关闭各种async/await和promise与setTimeout setTimeout(() => {console.log("timeout 200ms");}, 100);
循环在waitForAnswer()中。但是我的逻辑/流程出了点问题,或者我的脑海中缺少一些知识。浏览器崩溃或执行命令不是我需要的。
我需要function1()以该顺序工作,waitForAnswer()可以随意修改。
解决方案
推荐阅读
- r - 警告消息:在 read.table(file = file, header = header, sep = sep, quote = quote, : readTableHeader 在 'hola.csv' 上找到的不完整的最后一行
- mediawiki - 维基/页面排名器的内部链接结构
- reactjs - 如何在 react-table V7 中禁用对一列的分组
- java - Oracle Eclipse IDE for Java Dev 2019-09 Windowbuilder 崩溃 IDE
- sanity - 按对象数组中的字段值过滤查询结果 [Sanity.io & GROQ]
- json - 如何使用 rest 模板将 application/atom+xml 响应转换为 json
- java - IBM 云存储客户端
- mysql - 插入/内部连接 MYSQL
- reactjs - 使用 React Router 时更新文档和应用栏标题
- hibernate - 如何在同一方法中包含 2 个页面?