Node.js中Axios GET函数返回Pending Promise问题求助
问题原因
你当前的代码是定义了一个新的异步箭头函数并赋值给jobsToPrep,然后直接打印这个函数对象,而非执行函数获取返回值。
代码jobsToPrep = async () => await getJobsToPrep()的作用是创建一个异步函数,把函数本身赋值给变量,console.log输出的自然是函数的标识[AsyncFunction: jobsToPrep]。
解决方法
因为getJobsToPrep本身就是异步函数(返回Promise),你需要执行函数并处理它的返回结果,以下是几种可行方式:
方式一:使用立即执行异步函数表达式(IIFE)
(async () => { const jobsToPrep = await getJobsToPrep(); console.log(jobsToPrep); })();
方式二:在异步主函数中调用
async function run() { const jobsToPrep = await getJobsToPrep(); console.log(jobsToPrep); } run();
方式三:通过.then()处理Promise
如果不想用await,可以直接处理getJobsToPrep返回的Promise:
getJobsToPrep().then(jobs => { console.log(jobs); });
额外说明
- 无需给
getJobsToPrep再套一层异步箭头函数,它本身已经返回Promise,直接调用即可。 - 异步函数的结果必须通过
await(在异步上下文内)或.then()来获取,不能直接打印函数本身。
内容的提问来源于stack exchange,提问作者HarryBilney
相关产品推荐
相关产品推荐

