Async function returns [object Promise]

后端 未结 2 558
伪装坚强ぢ
伪装坚强ぢ 2021-01-28 16:14

I\'m trying to return an async function but I either get promise: < { PENDING } > or [object Promise] instead of [object Object]

相关标签:
2条回答
  • 2021-01-28 16:34

    I solved this by adding an await to the top level getNext() aka

    const next = await getNext({
      page,
      value,
      name,
      id,
    });
    

    which is inside an async router.post call. So the answer is: make sure all functions are async all the way to the top so that they wait for eachother.

    0 讨论(0)
  • 2021-01-28 16:36

    You cannot make asynchronous code synchronous.

    The await keyword lets you write code that looks synchronous, but is really asynchronous.

    You can only use await inside a function which is async.

    To make await work, all async functions return promises. Those promises resolve to be the return value of the function.

    In short: You have the normal and expected behaviour, and you can't prevent an async function from returning a promise.

    0 讨论(0)
提交回复
热议问题