【问题标题】:How to try until resolve (Promise in JavaScript) [duplicate]如何尝试直到解决(JavaScript 中的承诺)[重复]
【发布时间】:2021-01-25 00:40:38
【问题描述】:

最近我遇到了一个连接问题,导致我的代码和数据库之间的连接不稳定...

TimeOut Error


您可能已经注意到,这会创建一个连接请求错误,我需要一种方法来让我的 Promise 继续尝试直到解决。
我的代码:
var results = sqlQuery(sql)
function sqlQuery (sql) {
   return new Promise((resolve, reject) => {
      sql.query(/*query*/, function (error, results, fields) {
         if (error) {
            console.log(error)
            reject(error)
         }
         resolve(results)
      })
   })
}

重要提示:上面的代码在 while() 中,它在每个循环中更改 /*query*/

【问题讨论】:

    标签: javascript node.js asynchronous promise timeout


    【解决方案1】:

    我没有办法对此进行测试,但请尝试使用递归函数:

    var results = sqlQuery(sql)
    function sqlQuery (sql) {
       return new Promise((resolve, reject) => {
          sql.query(/*query*/, function (error, results, fields) {
             if (error) {
                return sqlQuery(sql).then(res => resolve(res));
             }
             resolve(results)
          })
       })
    }
    

    虽然我不得不说一遍又一遍地重做并不是最好的主意......

    【讨论】:

      猜你喜欢
      • 2016-02-16
      • 2021-08-19
      • 2019-05-09
      • 1970-01-01
      • 2018-07-29
      • 2019-08-21
      • 2020-06-21
      • 2017-12-29
      • 1970-01-01
      相关资源
      最近更新 更多