如何使下面的函數返回一個承諾,以便我可以在調用此函數的頁面中正確處理它?返回結果作爲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;
}
我試過以下,但它顯示錯誤。我應該如何修改?
return new Promise((resolve, reject) => {
resolve(uploads);
});
我將調用此方法,如下所示。
this.db.getUploads().then((uploads) => {
this.allUploads = uploads;
console.log(this.allUploads);
});
這樣就解決了一個空數組。決心必須放在回調的某個地方。 –
編輯答案適用於我的承諾 – user3050534
它也適用於我。與迴歸承諾的使用方式有何不同? – Purus