如何尝试直到解决(JavaScript 中的承诺)

How to try until resolve (Promise in JavaScript)


最近我一直面临连接问题,导致我的代码和数据库之间的连接不稳定...

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*/

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

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)
      })
   })
}

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