大佬教程收集整理的这篇文章主要介绍了angular – Typescript承诺在.then之后丢失值,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
getTemperatureData(): Promise<any> { let data = this.convertJSONToGoogleChartTable(temperatureData_JSON); let p = Promise.resolve(data); return p; }
使用Chrome我看到上面的p看起来像
ZoneAwarePromise {__ zone_symbol__state:true,__ zone_symbol__value:“[[”Date“,”Temperature“,”LowTemperature“],[”05/11/2 ……“,69.02,null],[”2016/11/11 23:54: 34\”,69.99,空]]“}
getTemperatureData() { var d = this.dataservice.getTemperatureData(); d.then(data => this.line_ChartData = data); }
当我看到d时,我看到与上面的p相同
ZoneAwarePromise {__ zone_symbol__state:true,空]]“}
问题发生在.then,其中“d”的值只是一个空的承诺.以下内容取自Chrome开发工具控制台,以显示我所看到的内容.
d.then(data => console.log(data)) ZoneAwarePromise {__zone_symbol__state: null,__zone_symbol__value: Array[0]}
无论我做什么以及我尝试了多少组合,我都无法获得d中的数据. (注意,p和d只是临时破坏代码的.)
我的package.json如下:
{ "name": "angular2","version": "0.0.0","license": "MIT","angular-cli": {},"scripts": { "start": "ng serve","lint": "tslint \"src/**/*.ts\"","test": "ng test","pree2e": "webdriver-manager update","e2e": "protractor" },"private": true,"dependencies": { "@angular/common": "~2.1.0","@angular/compiler": "~2.1.0","@angular/core": "~2.1.0","@angular/forms": "~2.1.0","@angular/http": "~2.1.0","@angular/material": "^2.0.0-alpha.9-3","@angular/platform-browser": "~2.1.0","@angular/platform-browser-dynamic": "~2.1.0","@angular/router": "~3.1.0","core-js": "^2.4.1","ng2-bootstrap": "^1.1.16","node-MysqL": "^0.4.2","rxjs": "5.0.0-beta.12","ts-Helpers": "^1.1.1","zone.js": "^0.6.23" },"devDependencies": { "@types/jasmine": "^2.2.30","@types/node": "^6.0.42","angular-cli": "1.0.0-beta.19-3","codelyzer": "1.0.0-beta.1","jasmine-core": "2.4.1","jasmine-spec-reporter": "2.5.0","karma": "1.2.0","karma-chrome-launcher": "^2.0.0","karma-cli": "^1.0.1","karma-jasmine": "^1.0.2","karma-remap-istanbul": "^0.2.1","protractor": "4.0.9","ts-node": "1.2.1","tslint": "3.13.0","typescript": "~2.0.3","webdriver-manager": "10.2.5" } }
这告诉我convertJSONToGoogleChartTable正在返回一个承诺,而你并没有链接你对它的承诺.
请注意,如果您使用的是比任何类型更强的类型,TypeScript编译器可能会为您捕获此类型.
由于您在获取该数据后没有做任何事情,您可以这样做:
getTemperatureData(): Promise<any> { return this.convertJSONToGoogleChartTable(temperatureData_JSON); }
但是如果你想在返回之前对这些数据做些什么,你可以在原来的承诺中锁定它:
getTemperatureData(): Promise<any> { return this.convertJSONToGoogleChartTable(temperatureData_JSON) .then(data => { console.log(data); return data; }); }
以上是大佬教程为你收集整理的angular – Typescript承诺在.then之后丢失值全部内容,希望文章能够帮你解决angular – Typescript承诺在.then之后丢失值所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。