gpt4 book ai didi

javascript - 在nodejs中使用async和await获取Promise { }

转载 作者:行者123 更新时间:2023-12-03 02:18:22 24 4
gpt4 key购买 nike

就我而言,我能够获取 token ,但不是我想要的方式,即我不想打印待处理的 promise ,并且在 tokenDisp.js 中运行后的输出是:

output: Promise { pending }

t5Npxk5FfnRTj8iHd8vyyfGxnhXR4KQf

登录.js:

  module.exports = async function doLogin() {
const token = await loginToken();
const myToken = JSON.parse(token);
return console.log(myToken);
};

tokenDisp.js:

 const myToken = require('./login.js);
myToken();

有人可以帮忙吗?

最佳答案

所有async函数都会返回一个promise,并且您仍然必须对的返回值使用.then()await >async 函数以便使用它。如果您从 async 函数返回一个值,它将是返回的 Promise 的解析值。如果抛出异常,该异常将成为拒绝返回的 Promise 的原因。

在函数内部使用 await 可以方便地在异步函数内部使用。它不会神奇地将异步操作变成同步操作。所以,你的函数返回一个 promise 。要从中获取值,请对其使用 .then()

module.exports = async function doLogin() {
const token = await loginToken();
const myToken = JSON.parse(token);
console.log(myToken);
return myToken; // this will be resolved value of returned promise
};

const myToken = require('./login.js);
myToken().then(token => {
// got token here
}).catch(err => {
console.log(err);
});
<小时/>

注意:您的 login.js 模块产生的结果与这样编写的结果相同(不使用 asyncawait):

module.exports = function doLogin() {
return loginToken().then(token => {
const myToken = JSON.parse(token);
console.log(myToken);
return myToken; // this will be resolved value of returned promise
});
};

关于javascript - 在nodejs中使用async和await获取Promise { <pending> },我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49267856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com