为什么从 fetch 函数返回的对象是它之外的函数?
Why the object returned from a fetch function is a function outside it?
我不明白为什么 data
type 是我函数内部的一个对象,但外部是一个函数...有什么想法吗?谢谢
const fetchAllUsersData = async () => {
setLoading(true);
const userFromFirebase = await firebase.database().ref("users").orderByChild("nickname").equalTo(nickname).on("child_added", ((snapshot) => {
const data = snapshot.val();
console.log("data", typeof data); // show object
return data;
}));
console.log("userFromFirebase",typeof userFromFirebase); // show function
}
fetchAllUsersData();
阅读文档:https://firebase.google.com/docs/reference/node/firebase.database.Reference#on
.on 方法将 return 任何东西,而不是您的 DataSnapshot。更好的方法是改用回调。这是一个例子:
const fetchAllUsersData = async (callback) => {
setLoading(true);
const userFromFirebase = await firebase.database().ref("users").orderByChild("nickname").equalTo(nickname).on("child_added", ((snapshot) => {
const data = snapshot.val();
console.log("data", typeof data); // show object
callback(data);
}));
}
fetchAllUsersData((data) => {
console.log("data", typeof data); // still shows object
});
我不明白为什么 data
type 是我函数内部的一个对象,但外部是一个函数...有什么想法吗?谢谢
const fetchAllUsersData = async () => {
setLoading(true);
const userFromFirebase = await firebase.database().ref("users").orderByChild("nickname").equalTo(nickname).on("child_added", ((snapshot) => {
const data = snapshot.val();
console.log("data", typeof data); // show object
return data;
}));
console.log("userFromFirebase",typeof userFromFirebase); // show function
}
fetchAllUsersData();
阅读文档:https://firebase.google.com/docs/reference/node/firebase.database.Reference#on
.on 方法将 return 任何东西,而不是您的 DataSnapshot。更好的方法是改用回调。这是一个例子:
const fetchAllUsersData = async (callback) => {
setLoading(true);
const userFromFirebase = await firebase.database().ref("users").orderByChild("nickname").equalTo(nickname).on("child_added", ((snapshot) => {
const data = snapshot.val();
console.log("data", typeof data); // show object
callback(data);
}));
}
fetchAllUsersData((data) => {
console.log("data", typeof data); // still shows object
});