【发布时间】:2018-01-26 07:01:06
【问题描述】:
我有一个存储设置为 access_token,当我第一次让它返回时我失败了
提供者:
getLayMinisters(){
console.log(this.access_token);
return this.http.get(
this.api.url() + '/faith-leader/' + 'lay-ministers',
{
headers: new Headers({ "Authorization": "Bearer " + this.access_token })
}
)
.map(
response => response.json()
);
}
这是这个文件的构造函数
access_token: any;
layMinister_id: string;
constructor(
public http: Http,
public storage: Storage,
public api: ApiProvider
) {
this.storage.get('access_token').then(
(access_token) => {
this.access_token = access_token;
}
)
}
这是我的页面
getLayMinisters(){
this.layMinisterProvider.getLayMinisters().subscribe(
data => {
this.layMinisters = data;
}
);
}
这是在它上面
layMinisters = [];
constructor(
public navCtrl: NavController,
public navParams: NavParams,
public layMinisterProvider: LayMinisterProvider,
public alertCtrl: AlertController
) {}
ionViewDidLoad() {
this.getLayMinisters();
}
ionViewWillEnter() {
// this.getLayMinisters();
}
当页面第一次运行时,它返回console.log(this.access_token) 返回为undefined,然后我得到 api 没有响应的错误。但是当我再次单击链接以打开页面时,它运行良好并打印 access_token 并运行 api 调用并打印所有数据
【问题讨论】:
-
this.storage.get是异步操作。就像setTimeout(()=>{}, 2000)
标签: angular typescript ionic-framework ionic2 ionic3