首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从sqlite 4获取数据

从sqlite 4获取数据
EN

Stack Overflow用户
提问于 2019-08-15 18:18:33
回答 1查看 161关注 0票数 1

我的代码有一个问题,当我去寻找存储在SQLite中的数据时,这些数据会在最后被执行,而且我需要它们,因为我需要它们来使用最终将在屏幕上加载数据的服务。我把我的代码留在下面:

代码语言:javascript
复制
 import { Component, OnInit } from '@angular/core';
 import { LoadingController, Platform } from '@ionic/angular';
 import { AndroidPermissions } from '@ionic-native/android-permissions/ngx';
 import { Uid } from '@ionic-native/uid/ngx';
 import { EsqueletoServiceProvider } from '../../providers/no4get- 
 service/no4get-services';
 import { DatabaseServiceProvider } from '../../providers/database- 
 service/database-service';
 import { AlertController } from '@ionic/angular';

 @Component({
   selector: 'app-general',
   templateUrl: './general.page.html',
   styleUrls: ['./general.page.scss'],
 })
 export class GeneralPage {
   listaCategorias: any;
   token: any;
   imei: string;
   cards: any;
   loading: any;
   datosTelefono: any;


   constructor(private loadingController: LoadingController,
     public esqueletoService: EsqueletoServiceProvider,
     public databaseService: DatabaseServiceProvider,
     public uid: Uid, 
     public androidPermissions: AndroidPermissions,
     public alertCtrl: AlertController,
     public platform: Platform
     ) 
   { 
     this.listaCategorias = "1";
     this.databaseService.getSesion(1).then(result => {
       this.token = result.valor;
     })
     .catch( error => {
       this.MostrarAlerta("Noticias","","Hubo un problema al obtener los 
       datos del usuario.");
     });

     this.databaseService.getSesion(2).then(result => {
       this.imei = result.valor;
     })
     .catch( error => {
       this.MostrarAlerta("Noticias","","Hubo un problema al obtener los 
       datos del usuario.");
     });
   }



 ionViewDidEnter()
   {
     this.platform.ready().then(() => { 
       let datos = { 
         idNoticias: 0, 
         token: this.token,
         imei: this.imei
       };

       this.LoaderNoticias();
       this.esqueletoService.CargarNoticiasGeneral(datos).then((result) => 
       {
         if (result != null) 
         {
           let codigoError = result.toString().split('|');

           if(codigoError[0] == "777")
           {
             this.loadingController.dismiss();
             this.cards = result;
           }
           else if (codigoError[0] == "305")
           {
             this.loadingController.dismiss();
             this.MostrarAlerta("Noticias","",codigoError[2]);
           }
           else if (codigoError[0] == "310")
           {
             this.loadingController.dismiss();
             this.MostrarAlerta("Noticias","",codigoError[2]);
           }
           else if(codigoError[0] == "315")
           {
             this.loadingController.dismiss();
             this.MostrarAlerta("Noticias","",codigoError[2]);
           }
           else if(codigoError[0] == "000")
           {
             this.loadingController.dismiss();
             this.MostrarAlerta("Noticias","","Estimado usuario, hubo un 
             error inesperado.");
           }   
         } else {
           this.loadingController.dismiss();
           this.MostrarAlerta("Noticias","","Estimado usuario, hubo un 
           error inesperado.");
         }
       }, (err) => {
         this.loadingController.dismiss();
         this.MostrarAlerta("Noticias","","Estimado usuario, hubo un error 
         inesperado.");
       });
     });
   }

当前,当执行ionViewDidEnter ()事件时,它会创建一个名为data的变量,这是我想要向服务发送数组的地方,但到那时为止,令牌和IMEI字段都是undefined。通过在整个ionViewDidEnter ()事件执行后遵循代码的路径,代码只分配构造函数中的令牌和IMEI变量的数据。问题是,如何在执行ionViewDidEnter ()事件之前获得这些数据?

我的代码是在visual代码和Ionic 4中执行的。在我继续调查的同时,我提前感谢您给我的所有可能的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-16 15:03:43

如果您的数据依赖于其他异步数据,那么您只需继续嵌套它,直到您慢慢变得疯狂:

从构造函数中删除代码,然后将其全部放入ionViewDidEnter()中,并进行嵌套:

代码语言:javascript
复制
ionViewDidEnter() {
    this.platform.ready().then(() => {
        this.listaCategorias = "1";
        this.databaseService.getSesion(1).then(result => {
            this.token = result.valor;

            this.databaseService.getSesion(2).then(result => {
                this.imei = result.valor;

                let datos = {
                    idNoticias: 0,
                    token: this.token,
                    imei: this.imei
                };

                this.LoaderNoticias();
                this.esqueletoService.CargarNoticiasGeneral(datos).then((result) => {
                    if (result != null) {
                        let codigoError = result.toString().split('|');

                        if (codigoError[0] == "777") {
                            this.loadingController.dismiss();
                            this.cards = result;
                        }
                        else if (codigoError[0] == "305") {
                            this.loadingController.dismiss();
                            this.MostrarAlerta("Noticias", "", codigoError[2]);
                        }
                        else if (codigoError[0] == "310") {
                            this.loadingController.dismiss();
                            this.MostrarAlerta("Noticias", "", codigoError[2]);
                        }
                        else if (codigoError[0] == "315") {
                            this.loadingController.dismiss();
                            this.MostrarAlerta("Noticias", "", codigoError[2]);
                        }
                        else if (codigoError[0] == "000") {
                            this.loadingController.dismiss();
                            this.MostrarAlerta("Noticias", "", "Estimado usuario, hubo un error inesperado.");
                        }
                    } else {
                        this.loadingController.dismiss();
                        this.MostrarAlerta("Noticias", "", "Estimado usuario, hubo un error inesperado.");
                    }
                }, (err) => {
                    this.loadingController.dismiss();
                    this.MostrarAlerta("Noticias", "", "Estimado usuario, hubo un error inesperado.");
                });
            }).catch(error => {
                this.MostrarAlerta("Noticias", "", "Hubo un problema al obtener los datos del usuario.");
            });
        }).catch(error => {
            this.MostrarAlerta("Noticias", "", "Hubo un problema al obtener los datos del usuario.");
        });
    });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57514315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档