Wie kann ich die folgende Funktion, um eine Zusage zurückzugeben, damit ich es richtig in der Seite, die diese Funktion aufruft, umgehen kann?Rückgabe der Ergebnisse als Versprechen in Typescript
getUploads() {
const rootDef = this.db.database.ref();
const uploadsRef = rootDef.child('userUploads').orderByChild('time');
const userRef = rootDef.child("userProfile");
var uploads = [];
uploadsRef.once("value").then((uploadSnaps) => {
uploadSnaps.forEach((uploadSnap) => {
var upload = uploadSnap.val();
userRef.child(uploadSnap.val().user).once("value").then((userSnap) => {
upload.displayName = userSnap.val().displayName;
upload.avatar = userSnap.val().avatar;
uploads.push(upload);
});
});
});
return uploads;
}
Ich versuchte das unten, aber es zeigt Fehler. Wie soll ich ändern?
return new Promise((resolve, reject) => {
resolve(uploads);
});
Ich werde diese Methode aufrufen, wie unten gezeigt.
this.db.getUploads().then((uploads) => {
this.allUploads = uploads;
console.log(this.allUploads);
});
Diese auf ein leeres Array lösen würde. Die Lösung muss irgendwo in den Callbacks platziert werden. –
Editierte Antwort funktioniert für mein Versprechen – user3050534
Es funktioniert auch für mich. Wie unterscheidet es sich von meiner Art, Versprechen zu geben? – Purus