Javascript 从异步函数获取返回的数据
使用以下异步函数,我从firebase firestore实例获取数据:Javascript 从异步函数获取返回的数据,javascript,Javascript,使用以下异步函数,我从firebase firestore实例获取数据: export async function getSomething(db, id) { db.collection('someting').doc(id).get().then((doc) => { if (doc.exists) { return doc.data(); } throw new Error('No such document!'); }).catch((
export async function getSomething(db, id) {
db.collection('someting').doc(id).get().then((doc) => {
if (doc.exists) {
return doc.data();
}
throw new Error('No such document!');
}).catch((error) => {
throw new Error('err', error);
});
}
我这样调用这个函数:
getSomething(db, this.id).then((data) => {
console.log(data); // data is empty here
}).catch((err) => {
console.log(err);
});
问题是,来自的数据上的then
函数为空。
如何从getSomething
函数获取数据?返回数据还不够吗?如果要从函数返回值,则需要从函数返回一些内容
您有许多return语句,但它们都在回调中
你需要一个来获得一些东西
return db.collection('someting').doc(id).get().then((doc) => {
如果你想从函数中得到一个值,那么你需要从函数中返回一些东西
您有许多return语句,但它们都在回调中
你需要一个来获得一些东西
return db.collection('someting').doc(id).get().then((doc) => {
1) 您的函数没有理由是异步的
,因为您没有使用等待
。2) return db.collection…
为什么要使用异步函数await
操作符没有用处吗?可能重复1)由于您没有使用await
,所以函数没有理由是async
。2) return db.collection…
为什么要使用异步函数await
操作符没有用吗?可能重复