递归一个Promise封装的异步函数 先上代码 const foo = (n) => new Promise((resolve) => (n < 8 ? setTimeout(() => ++n && resolve(foo(n)), 1000) : resolve(n))); (async () => console.log(await foo(0)))(); // 8秒后打印8