Wie kann ich den Wert einer asynchronen Funktion zurückgeben?Rückgabewert einer asynchronen Funktion
Ich habe folgendes Versprechen:
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)
})
})
}
Dann benutze ich dieses Versprechen mit Async/Await
async function githubActivity() {
const gh = await reqGitActivity(`https://api.github.com/users/${github}/events`)
return gh
}
Und wenn ich führen Sie die Funktion mit:
console.log(JSON.parse(githubActivity()))
I Erhalten Sie nur das Versprechen, aber nicht den von der Anfrage zurückgegebenen Wert.
Promise {
_c: [],
_a: undefined,
_s: 0,
_d: false,
_v: undefined,
_h: 0,
_n: false }
Aber wenn ich einen console.log auf der gh
gestellt bekam ich den Wert aus dem Wunsch, aber ich will nicht githubActivity()
den Wert ich den Wert zurückgeben möchten loggt sein.
habe ich versucht, dies zu:
async function githubActivity() {
return await reqGitActivity(`https://api.github.com/users/${github}/events`)
.then(function (res) {
return res
})
}
Aber ich immer noch nur das Versprechen und nicht der Wert aus der Entschlossenheit.
Irgendwelche Gedanken?
haben Sie versucht, mit var gh = ... statt const gh = ...? –
@TudorConstantin Ja, und immer noch habe ich das Versprechen bekommen. – Rog
das ist verrückt - wenn Sie eine console.log (gh); vor der Rückkehr gh, wird der Inhalt angezeigt –