【发布时间】:2018-02-25 20:03:03
【问题描述】:
我想将 this.data 作为 post 请求的参数发送,但是当我在 return 语句之前放置一个 console.log(this.data) 时,它返回的 token 和 regNo 都是空值,但在 then 方法中storage get,console.log(this.data) 给出正确的值。这里出了什么问题?
import { Injectable } from "@angular/core";
import { Http } from '@angular/http';
import { Storage } from '@ionic/storage';
import 'rxjs/add/operator/toPromise';
import { DiaryModel } from './diary.model';
@Injectable()
export class DiaryService {
constructor(public http: Http, public storage: Storage) {}
data: any = {token: null, regNo: null};
getData(): Promise<DiaryModel> {
this.storage.get('regNo').then((val) => {
console.log(val);
this.data.regNo = val;
this.storage.get('user').then((val2) => {
console.log(val2);
this.data.token = val2.token;
});
});
return this.http.post("http://www.mysite.xyz/services/service.php", this.data)
.toPromise()
.then(response => response.json() as DiaryModel)
.catch(this.handleError);
}
private handleError(error: any): Promise<any> {
console.error('An error occurred', error); // for demo purposes only
return Promise.reject(error.message || error);
}
}
【问题讨论】:
标签: javascript typescript ionic-framework ionic2