обещание не возвращать значение в порядке - PullRequest
0 голосов
/ 28 августа 2018

Здравствуйте, я новичок в ионике,

Я хочу получить данные из pouch-db в фоновом режиме.
После небольшого исследования, которое я обнаружил, концепция обещания решит мою проблему.

Я хочу выполнить свои журналы консоли в порядке, указанном ниже 1, 2 и 3

Вот мой код:

Класс:

class1{

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

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

   })
 }

}

Provider1:

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)
            })
        })
 }

}

Provider2:

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");
          });
        })


      }
   }

Выше кода сначала выполняет журнал 3 и показывает ошибку с

Невозможно прочитать свойство navCtrl из неопределенного

Как мне выполнять функции в нужном мне порядке?

1 Ответ

0 голосов
/ 28 августа 2018

Используйте функцию жирной стрелки => вместо function.

class1{

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