gpt4 book ai didi

javascript - 从异步函数返回值

转载 作者:行者123 更新时间:2023-11-29 19:13:28 24 4
gpt4 key购买 nike

如何从异步函数返回值?

我有以下 promise :

function reqGitActivity (url) {
const options = {
url: url,
headers: {
'User-Agent': 'request'
}
}

return new Promise((resolve, reject) => {
request(options, (err, res, body) => {
if (err) {
reject(err)
return
}
resolve(body)
})
})
}

然后我将这个 Promise 与 Async/Await 结合使用

async function githubActivity () {
const gh = await reqGitActivity(`https://api.github.com/users/${github}/events`)
return gh
}

如果我执行函数:

console.log(JSON.parse(githubActivity()))

我只得到 Promise 而不是请求返回的值。

Promise {
_c: [],
_a: undefined,
_s: 0,
_d: false,
_v: undefined,
_h: 0,
_n: false }

但是如果我在 gh 上放置一个 console.log 我从请求中得到了值,但我不希望 githubActivity() 记录我的值想要返回值。

我也试过:

async function githubActivity () {
return await reqGitActivity(`https://api.github.com/users/${github}/events`)
.then(function (res) {
return res
})
}

但我仍然只得到 Promise 而不是决心的值(value)。

有什么想法吗?

最佳答案

看起来你只能access that value inside of a callback .

因此,不要使用 console.log(JSON.parse(githubActivity())),而是使用:

githubActivity().then( body => console.log( JSON.parse( body ) ) )

关于javascript - 从异步函数返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37066266/

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