【发布时间】:2018-05-28 20:25:53
【问题描述】:
我想从 currentUserName() 函数返回名称,但我得到了 ZoneAwarePromise。这是我的代码:
currentUserName() {
var firebaseData = firebase.database().ref('users');
var userid = this.afAuth.auth.currentUser.uid;
var promises = [];
var name;
var promise = firebaseData.orderByKey().once('value').then(function
(snapshot) {
snapshot.forEach(function (childSnapshot) {
if (childSnapshot.key === userid) {
name = childSnapshot.val().displayName;
}
});
return name;
});
promises.push(promise);
return Promise.all(promises).then(function(val) { return val; });
}
【问题讨论】:
-
Can't return value from async function. Why?因为它是异步的......currentUserName().then(....)是你应该调用的方式 -
promises.push(promise); return Promise.all(promises).then(function(val) { return val; });- 啊,某人试图做不可能的事情的绝望阴谋......如果我有足够的异步层,它可能会无缘无故地变得同步!
标签: javascript firebase firebase-realtime-database