如何在JavaScript中按顺序执行代码

如何在JavaScript中按顺序执行代码,javascript,Javascript,我有个问题。我正在编写一个方法,首先检查用户是否存在条件,如果不存在,它将插入操作,并且我正在使用一个标志变量来控制流。但有一个问题是,异常不是按顺序发生的,而是按“如果”!之后的标记将上升以检查用户是否存在 分析=动作ID=>{ //检查它是否不是第一个命令 console.log在定义鞭毛之前; var标志=假; 洛基岛; 火基 数据库 .反驳/ .oncevalue,snap=>{ console.logi定义后; snap.forEachchild=>{ 如果 child.val.use

我有个问题。我正在编写一个方法,首先检查用户是否存在条件,如果不存在,它将插入操作,并且我正在使用一个标志变量来控制流。但有一个问题是,异常不是按顺序发生的,而是按“如果”!之后的标记将上升以检查用户是否存在

分析=动作ID=>{ //检查它是否不是第一个命令 console.log在定义鞭毛之前; var标志=假; 洛基岛; 火基 数据库 .反驳/ .oncevalue,snap=>{ console.logi定义后; snap.forEachchild=>{ 如果 child.val.userID==firebase.auth.currentUser.uid&& child.val.ActionID==ActionID { plus=parseIntchild.val.repeation+1; console.log首次使用前; flag=true; 火基 数据库 雷夫奇尔德先生 .setrepeation=plus .然后=>{ console.login启动了更新; } .catcherror=>{ console.logerror; }; } }; }; 第二次使用前的console.log; 如果!旗帜{ console.loginside第二次使用; var userActionKey=firebase 数据库 参考号 .childuserActions .按键; 火基 数据库 .RefugserActions/+userActionKey .设置{ userID:firebase.auth.currentUser.uid, 行动编号:001, 时间:12,, 重复:1 } .然后=>{ console.loginserted; } .catcherror=>{ console.logerror; }; } };
JavaScript同步运行代码。要解决这个问题,可以使用Promissions或AsyncWait来运行异步代码。或者,您可以在第一个进程内调用函数

下面的代码应该可以工作

功能剂量测定法{ var userActionKey=firebase.database.ref.child'userActions'.push.key; 火基 数据库 .ref'userActions/'+userActionKey .设置{ userID:firebase.auth.currentUser.uid, ActionID:'001', 时间:'12', 重复:'1', }.然后=>{ 控制台。日志“插入” }.catcherror=>{ 控制台日志错误 }; }; firebase.database.ref'userActions/'。一旦'value',snap=>{ snap.forEachchild=>{ ifchild.val.userID==firebase.auth.currentUser.uid&&child.val.ActionID==ActionID{ plus=parseIntchild.val.Repeation+1; 火基 .database.refchild.setrepeation=plus .然后=>{ 日志“插入了更新”; }.catcherror=>{ console.logerror; }.finally=>{ 剂量测定法; }; } }; }; 我希望这个例子在这里向您展示逻辑

我强烈建议您学习JavaScript中的承诺