试着理解angular 2中的Promise
Trying to understand the Promise in angular 2
我已经为谷歌API创建了一个服务,并在承诺响应中堆叠。让我展示一下我的代码:
getPromise: Promise<any>;
loadSheets: Array<any>;
constructor(public _checkAuthApiService: CheckAuthApiService) { }
ngOnInit() {
if (this._checkAuthApiService) {
this._checkAuthApiService.checkAuth().then(res => {
if (res && !res.error) {
this.loadSheetsFunc();
}
});
}
//setTimeout(function(){},1000); //When i add this it works :(
}
loadSheetsFunc = () => {
this.getPromise = new Promise((resolve: any, reject: any) => {
resolve(this._checkAuthApiService.loadSheetsApi())
});
this.getPromise.then((res: any) => this.sheetsResults(res));
};
sheetsResults = (res: any) => this.loadSheets = res.result.values;
不知道我错过了什么,但当我在ngOnInit
中添加seTimeout
时,我得到了我想要的数据。有人可以帮助我与这段代码,或者也许建议我一个更好的方式使用可观察对象。提前谢谢你。
setTimeout()
会导致一个完整的Angular2更改检测周期,这就是为什么它会使Angular2识别更新的属性。
Angular2不识别没有setTimeout()
的更新表明polyfills有问题(可能是加载顺序)。
我想对你的代码做一些修改
loadSheets: Array<any>;
constructor(public _checkAuthApiService: CheckAuthApiService) { }
ngOnInit() {
if (this._checkAuthApiService) {
this._checkAuthApiService.checkAuth().then(res => {
if (res && !res.error) {
this.loadSheetsFunc();
}
});
}
}
loadSheetsFunc() {
this._checkAuthApiService.loadSheetsApi()
subscribe(val => this.sheetsResults(res));
}
sheetsResults(res: any) {
this.loadSheets = res.result.values;
}
我不知道loadSheetsApi()
返回什么(假设Observable
)。
相关文章:
- 测试Angular Service解决错误回调中的promise
- Node.js中的Promise.all没有't调用then函数
- AngularJS中的promise错误
- ngResource PUT 由于 JSON 对象中的$promise和$resolved而返回错误请求
- JavaScript 中的 promise 干预其余代码
- node.js promise:嵌套在then()链中的promise的then(;我解决不了
- 使用AngularJS中的promise管理来自控制器的服务回调
- angular.js+node.js/electron中的Promise;不起作用
- 使用循环在另一个函数之后运行一个函数&jQuery/JavaScript中的promise
- 解析函数对Node.js中的promise对象不起作用
- 关于ES6中的Promise链
- for循环中的Promise链
- 循环中的Promise
- 带回调的resource.save()和使用AngularJS的ngResource中的$promise的区别
- 试着理解angular 2中的Promise
- 如何替换'Async=false'javascript中的promise
- 如何在Angular 2中的promise中调用类方法
- 复杂承诺返回链中的 promise catch() 顺序
- 如何从then()函数中的Promise访问内容,并在下一个then(
- 检查对象是否是 AngularJS 中的 promise