当内部有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))
答案 0 :(得分:3)
您需要退还承诺。然后使用.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));