首页 文章

保证不按顺序返回 Value

提问于
浏览
0

你好我是离子的新手,

我想在后台从 pouch-db 获取数据 .
经过一番研究后我发现,承诺的概念将解决我的问题 .

我想按照下面的1,2和3顺序执行我的控制台日志

这是我的代码:

class :

class1{

 method1(){
    class2Provider.method2().then(function (result:any) {

      console.log("3")
      console.log("VSCP "+result);
      this.navCtrl.push('InspectionPage',{'inspectnData':result});

   })
 }

}

提供者1:

export class ModelProvider {

 method2(){
  return new Promise (resolve => {

            this.dbHelpr.getRecord().then(function (result:any) {
                console.log("2")
                console.log("data for inspectId is -------------"+JSON.stringify(tempData));
                resolve(result)
            })
        })
 }

}

提供者2:

export class DbHelperProvider {

  getRecord(){

        return new Promise(resolve => {
          this.db.get(_id).then(function (doc) {
            console.log("1")
            resolve(doc);
          }).catch(function (err) {
            console.log(err);
            resolve("fail");
          });
        })


      }
   }

上面的代码首先执行log 3并显示错误

无法读取未定义的属性'navCtrl'

如何按我想要的顺序执行功能?

1 回答

  • 2

    使用胖箭头功能 => 而不是 function .

    class1{
    
        method1(){
            class2Provider.method2().then((result: any) => {
                console.log("3")
                console.log("VSCP " + result);
                this.navCtrl.push('InspectionPage', { 'inspectnData': result });
            })
        }
    }
    

相关问题