我在AngularJS 2中有一个基类,restClient使用这个方法从API调用数据:
public getInfoDataBooleanRequest(url: string): InfoDataBoolean { return this.http.get(this.urlApiPrefix + url,this.createRequestOptions()) .toPromise() .then(response => <InfoDataBoolean>response.json()) .catch(this.handleError); }
其中InfoDataBoolean是一个具有两个属性的类:
export class InfoDataBoolean { public data: boolean; public error: string; }
我有另一个课,我打电话给我的服务方法.
这个调用在一个方法里面,我想从InfoDataBoolean返回数据,而不是像这样的类InfoDataBoolean.
public isLogged(): boolean { return this.getInfoDataBooleanRequest('islogged').then(x => { let result: InfoDataBoolean = x; if(result.error !== "1") { console.log('Success is failed'); return false; } return result.data; }); }
console.log的输出(isLogged()):
ZoneAwarePromise {__zone_symbol__state: null,__zone_symbol__value: Array[0]}
但我希望从我的方法isLogged()返回true或false.
我怎样才能做到这一点?
不要忘记您的isLogged方法是异步的并返回一个promise.要获得结果,您需要使用then方法在其上注册回调:
console.log(isLogged()); isLogged().then(data => { console.log(data); });
在您的情况下,您将在解析时显示承诺和返回的结果…
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。