Javascript 带承诺解析的递归异步函数

Javascript 带承诺解析的递归异步函数,javascript,node.js,recursion,promise,async-await,Javascript,Node.js,Recursion,Promise,Async Await,我有一个递归异步函数,可以通过fs.writeFile获得预期的输出,其中returnnewpromise..是,但不能异步返回。我没有定义。我如何在不破坏代码结构的情况下修复它,谢谢 async function get_followings(all_data = [], cursor, count = 0) { if (count == 2) { return new Promise(resolve => { resolve(all_data.len

我有一个递归异步函数,可以通过
fs.writeFile
获得预期的输出,其中
returnnewpromise..
是,但不能异步返回。我没有定义。我如何在不破坏代码结构的情况下修复它,谢谢

async function get_followings(all_data = [], cursor, count = 0) {
    if (count == 2) {
      return new Promise(resolve => {
        resolve(all_data.length)
      })
    }

    var followings = await client.getFollowings({ userId: 2896863162, first: 50, after: cursor })
    var total = followings.count
    var cursor = followings.page_info.end_cursor
    var data = followings.data

    all_data = all_data.concat(data)

    await get_followings(all_data, cursor, count + 1)
  }

console.log(await get_followings())

我发现的一件事是,您没有返回
wait get_followers
的结果
get_followers
在上一个语句中没有返回任何内容。。。同样,由于这是一个异步函数,您只需
返回所有\u数据。最上面的代码中的length
,不需要新的承诺-作为一个旁白
返回承诺。resolve(all\u data.length)
基本上就是该代码所做的。。。但正如我所说,甚至不需要这样做that@JaromandaX当我尝试返回所有数据时,长度重新定义了吗?你确实摆脱了新的承诺,对吧?因此,如果(count==2)返回所有的\u数据.length,则返回
——您确实在最后一行添加了一个返回(并删除wait),即
返回get\u followers(所有的\u数据,光标,count+1)