Я попытался подписаться на наблюдаемое возвращение массива, объект массива довольно хорошо печатается на консоли, но доступ к содержимому массива вызывает неопределенную ошибку и array.length print out 0;
// Наблюдаемая генерация, извлекающая возвращаемый массив из хранилища данных
`getDataFromDatabase(sqlStatement:string, querydata?:any[]):Observable<any>{
let datas:Array<any> = [];
this.database.executeSql(sqlStatement, querydata?querydata:[]).then((data)=>{
let len = data.rows.length;
console.log('database data.rows', data.rows);
for(let i =0; i<len; i++){
let d= data.rows.item(i);
datas.push(d);
}
},
(err)=>{
datas = err;
}
);
return observable.forkJoin(observable.of(datas));
}`
// Функция, подписывающаяся на наблюдаемое
`checkIfFirstTime():Observable<number>{
this.database.getDatabaseState().subscribe(state=>{
if(state){
let query = "SELECT appLaunch AS al FROM User WHERE id = ?";
this.database.getDataFromDatabase(query, [1]).subscribe(data=>{
if(data!=null){
data = data[0];
console.log(data.length, ' - Check-auth.service 1...', data);
if(data[0].al){
let query2 = "SELECT pin AS pin FROM Setting WHERE id = ?";
console.log(query2);
this.database.getDataFromDatabase(query2, [200]).subscribe(data2=>{
data2 = data2[0];
if(data2[0].pin&&this.login){
this.authIndex = 1;
}
else if(data2[0].pin&&(!this.login)){
this.authIndex = 3;
}
else if(!data2[0].pin){
this.authIndex = 1;
}
});
}
else if(!data[0].al){
console.log('hey am here');
this.authIndex = 2;
}
}
});
}
});
return observer.of(this.authIndex);
}`
// результат ошибки
Array (1) 0: {al: 0} длина: 1__proto__: Array (0) "Check-auth.service 1 ..." Array (1) 0: [{…}] длина: 1__proto__: Array (0) ".... 3" 1 vendor.js: 55437 ОШИБКА TypeError: Невозможно прочитать свойство 'al' из неопределенного в SafeSubscriber._next (по умолчанию ~ home-home-module ~ pages-calendar-calendar-module ~pages-pin-link-pin-link-module ~ pages-Remde ~ b3c38b73.js: 9057) в SafeSubscriber.push ../ node_modules / rxjs / _esm5 / internal / Subscriber.js.SafeSubscriber .__ tryOrUnsub (vendor.js: 94208) в SafeSubscriber.push ../ node_modules / rxjs / _esm5 / internal / Subscriber.js.SafeSubscriber.next (vendor.js: 94146) в Subscriber.push ../ node_modules / rxjs / _esm5 / internal / Subscriber.js.Subs._next (vendor.js: 94089) в Subscriber.push ../ node_modules / rxjs / _esm5 / internal / Subscriber.js.Subscriber.next (vendor.js: 94066) в ForkJoinSubscriBer.Push._complete (vendor.js: 93292) в InnerSubscriber.push ../ node_modules / rxjs / _esm5 / internal / Subscriber.js.Subscriber.complete (vendor.js: 94078) в vendor.js: 104694 в subscribeToResult (vendor.js): 104875) defaultErrorLogger @ vendor.js: 55437 main.js: 3124 база данных data.rows Object`