Ich habe ein kleines Problem mit einem Fehler bei Versprechungen. Also zunächst hatte ich meine Funktion so eingerichtet, und alles hat gut funktioniert, keine Probleme.Async-/Warteverzug ausstehend Fehler
Original:
const request = require("request-promise");
async() => {
const URL_HIDDEN = "...";
let info = await request(URL_HIDDEN);
info = JSON.parse(info).response.players[0];
let playtime = await request(URL_HIDDEN);
playtime = JSON.parse(playtime).response.games;
console.log(info);
console.log(playtime);
}
Dies ist eine verkürzte Version, aber im Grunde bin ich nur Informationen aus dem Steam-API anfordert. Beide Variablen werden mit allen Daten ausgedruckt, kein Problem, aber das ändert sich, sobald ich den Refactor unten mache.
überarbeitete: in einer separaten Funktion in einer separaten Datei Handhabung
const middleware = require("../middleware");
async() => {
const URL_HIDDEN = "...";
let requests = middleware.requestURI(URL_HIDDEN);
console.log(requests);
}
und ich begann die ganze Anfrage zu tun.
Sobald ich alle Variablen aussortiert habe, möchte ich ein Array zurückgeben. Sobald dies ausgeführt wurde, bekomme ich das auf die Konsole gedruckt.
1
Promise { <pending> }
2
3
Jede Idee, warum es Promise Druck einmal anhängige ich es Refactoring?
In der ursprünglichen druckt er alles völlig in Ordnung
so was ist das Problem? – Ivan
Anstatt zu protokollieren, was tatsächlich im Array ist, werden nur die ausstehenden Versprechen ausgedruckt. Es gibt eine Menge Informationen in jeder Variablen im Array – Phillip
, da 'requestURI'' async' ist und nicht abgeschlossen wird, wenn 'console.log (requests)' ausgeführt wurde – Ivan