如何使下面的函数返回一个承诺,以便我可以在调用此函数的页面中正确处理它?返回结果作为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