Я использую JS и PouchDB в проекте Cordova.Структура базы данных PouchDB выглядит следующим образом:
var act = {
_id: <some_id>,
activity: <some_description>,
totaltime: <string_represeting_duration>,
instances: [{datum: "04/04/18", tijd: "01:10"},{datum: "04/04/18", tijd: "00:35"}]
};
У меня есть функция, которая должна возвращать массив объектов, а именно из экземпляров полей:
function queryDbForDatesAndDuration(todo) {
var objDandD = [];
db.get(todo._id).then(function(doc) {
var t = doc.instances.length;
for(i=0; i<t; i++) {
objDandD[i] = {
datum: doc.instances.datum,
tijd: doc.instances.tijd
};
}
}).then(function(response) {
console.log(objDandD);
return objDandD;
}).catch(function (err) {
console.log("And error occured while querying the DB for date and duration: " + err);
});
}
Запрос кбаза данных работает, но ObjDandD не передается при возврате.Сначала я подумал, что это потому, что PouchDB работает асинхронно, и значение не разрешается при возврате, но использование async / await не помогло:
async function createSingleAct(todo) {
...
var Ob = await queryDbForDatesAndDuration(todo);
...
Просто продолжает выдавать ошибку TypeError:
TypeError: Ob is undefined
Кто-нибудь может мне помочь с этим?Я отчаянно искал безрезультатно.Спасибо.