Я настраиваю проект Framework7 с помощью веб-пакета и хочу модуль для запросов к базе данных, использующий Firebase.Функция из импортированного модуля выполняется, но запрошенный массив никогда не возвращается / обещание не разрешается.Что я делаю не так?
Я подозреваю, что я либо делаю что-то не так при импорте самого модуля, либо неправильно решаю обещание.Я попытался и потерпел неудачу как с return , так и resol в функции getAllRestaurants в модуле.Я пытался дождаться ответа от вызова базы данных с помощью async / await , .then () и даже с setTimout .Я также попытался просто сказать let array = database.getAllRestaurants () .
database.js (модуль)
// Initialize Firebase
import firebase from 'firebase'
import config from '../config';
const firebaseApp = firebase.initializeApp(config);
const db = firebase.firestore(firebaseApp);
//getting array form database
export function getAllRestaurants(){
//defining db route omitted
let array = [];
route.get().then(function(querySnapshot){
querySnapshot.docs.forEach(function(document){
array.push(document.data());
});
return array; //Have tried with only return and with only resolve
})
.resolve(array) //Have tried with only return and with only resolve
.catch(function(error){
console.error('error i firebase getallrestaurants: ', error);
});
}
//The function getAllRestaurants works and gets the array just fine, so the error is in returning it to the function caller
app.js (main)
//importing my module
import * as database from './database';
//trying to return an array from a function in the module
let array = database.getAllRestaurants(); //returns undefined
//another attempt at getting the same array, .then never executes
database.getAllRestaurants().then((array =>{
//do stuff
}));
Я ожидал, что код в app.js получит массив из функции, но он получит только 'undefined'