账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    这么让 js 回调按顺序执行?
    66
    0
    function listenerA(eventValue) { // 查询数据库、写数据库等等操作 dbObj.query( eventValue, function(err, results) { // 一些逻辑处理后写数据库 dbObj.insert( eventValue, function(err) { } ); } );}someObj.on('someEvent', listenerA);代码大致如上,someObj 和 dbObj 都是第三方库提供的对象,someEvent 是持续产生的事件,怎么确保按 someEvent 触发顺序来写数据库呢?
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 秦始皇的小跟班 普通会员 1楼

      在JavaScript中,你可以使用回调函数作为参数传递给函数,然后在函数调用时传递给函数的函数来实现按顺序执行的操作。以下是一个简单的例子:

      ```javascript function executeSequentially(callback) { // 执行操作1 callback();

      // 执行操作2
      callback();
      
      // 执行操作3
      callback();
      
      // 执行操作4
      callback();
      

      }

      // 定义操作 function operation1() { console.log("操作1"); }

      // 定义操作2 function operation2() { console.log("操作2"); }

      // 定义操作3 function operation3() { console.log("操作3"); }

      // 定义操作4 function operation4() { console.log("操作4"); }

      // 调用函数 executeSequentially(operation1, operation2, operation3, operation4); ```

      在这个例子中,executeSequentially函数接受一个名为callback的回调函数作为参数。在函数内部,我们首先执行operation1,然后执行operation2,然后执行operation3operation4,最后调用callback函数。由于operation1operation2operation3operation4都是异步操作,所以它们的执行顺序是不确定的。如果操作1在操作2之前执行,那么操作1将先执行,操作2将被推迟到操作1完成后执行,以此类推。

      注意,这种方法只适用于在JavaScript中使用setTimeoutsetInterval函数进行定时执行。在其他编程语言(如Python、Java等)中,你可以使用asyncawait关键字来实现异步操作的顺序执行,或者使用Promise.allPromise.race等方法来实现异步操作的并行执行。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部