JavaScript中的递归异步函数 [英] Recursive async function in JavaScript
本文介绍了JavaScript中的递归异步函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用JavaScript中的async / await编写递归函数。
这是我的代码:
I'm trying to write a recursive function using async/await in JavaScript. This is my code:
async function recursion(value) {
return new Promise((fulfil, reject) => {
setTimeout(()=> {
if(value == 1) {
fulfil(1)
} else {
let rec_value = await recursion(value-1)
fulfil(value + rec_value)
}
}, 1000)
})
}
console.log(await recursion(3))
但我有语法错误:
let rec_value = await recursion(value-1)
^^^^^^^^^
SyntaxError: Unexpected identifier
推荐答案
我写的是你的代码如下:
I'd write your code as follows:
const timeout = ms => new Promise(resolve => setTimeout(resolve, ms));
async function recursion(value) {
if (value === 0) return 0;
await timeout(1000);
return value + await recursion(value - 1);
}
(async () => console.log(await recursion(3)))();
这篇关于JavaScript中的递归异步函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文