为什么我的承诺不做这个工作?

时间:2017-06-16 13:49:18

标签: angular typescript ionic2

我挣扎着承诺我认为我理解这个概念但是对于我的项目来说这不起作用,

这是我的一些代码:

(我在TypeScirpt中用Angular 2和Ionic2编码)

ngOnInit() {
  Promise.resolve(this.loadStatut()).then(() => this.testStatut());
}

testStatut() {
  if (this.admin !== undefined) {
    this.navCtrl.push(ConnectPage);
  } else {
    console.log("Undefined")
  }
}

admin;
loadStatut() {
  this.storage.get('admin').then((val) => {
    this.admin = val;
    console.log(this.admin)
  });
}

Result :

testStatutloadStatut之前发送回复,我需要反其道而行。

我尝试用其他功能进行测试,这是有效的:

ngOnInit() {
  Promise.resolve(this.test1()).then(() => this.test2());
}

test1() {
  console.log("1")
}

test2() {
  console.log("2")
}

Result : 这里的代码是合法的test1,然后是test2

1 个答案:

答案 0 :(得分:2)

我更改了您的代码,尝试

ngOnInit() {
  this.loadStatut().then(() => this.testStatut());
}

testStatut() {
  if (this.admin !== undefined) {
    this.navCtrl.push(ConnectPage);
  } else {
    console.log("Undefined")
  }
}

admin;
loadStatut() {
  return this.storage.get('admin').then((val) => {
    this.admin = val;
    console.log(this.admin)
  });
}