JavaScript承诺递归返回未定义

当内部有promise时,如何返回一个递归函数, 到目前为止,这是我的代码

loop = (i) => {
  new Promise((resolve) => {
      setTimeout(() => {
        resolve(i)
      },100)
    })
    .then((res) => {
      if (res <= 5) {
        return loop(res + 1)
      } else {
        return true
      }
    })
}
console.log(loop(0))

lisports 回答:JavaScript承诺递归返回未定义

您需要退还承诺。然后使用.then()等待承诺解决,然后在此处致电console.log()

loop = (i) => {
  return new Promise((resolve) => {
      setTimeout(() => {
        resolve(i)
      },100)
    })
    .then((res) => {
      if (res <= 5) {
        return loop(res + 1)
      } else {
        return true
      }
    })
}
loop(0).then(result => console.log(result));

本文链接:https://www.f2er.com/2726839.html

大家都在问