node循环中进行异步操作

async en_exec_list ()
    {
        
        console.log('*************************运行开始***********************')
        
        //   //获取产品ID
          var sql = 'SELECT * FROM en_del_products WHERE  STATE = 0 limit 1';
          var waitList = await mysql_auto_db.await_query(sql);
        
          for( let doc of waitList)
          {
              let c= await ftp_db.await_query({
                action: "delete",
                offlinePath: "www/1.txt"
            });
            console.log(c)
          }

          console.log('***********************运行结束*************************')

    }

你好,请问我怎么处理才能等待for执行结束后,再打印运行结束呢?

ftp_db.await_query 是自己封装,用来删除FTP中的文件。

目前的报错信息:

clipboard.png

阅读 2.2k
3 个回答

报错指的是 ftp_db.await_query 执行报错了 你却没catch它。你写的代码异步顺序应该没问题

循环中的每个promise都放在数组里,promise.all.then在打印运行结束

await的方法全部放在Promise.all下,然后在回调then中打印 运行结束就好了。

你的代码中因为await是异步执行,这里会先执行console,然后才会执行await后面的方法。

同时因为他们之间是没有任何关系的,谁先返回谁先结束。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题