可观察量和响应数据类型



我试图掌握可观察量,但有时会迷失在一无所有。

假设我们订阅 getData 以异步获取 json 数据:

this.getData(id)
.subscribe(res => {
console.log(data.items[0])
// more data processing
})

这有效,但在 .subscribe 中处理响应数据看起来并不令人满意。将响应分配给 var 似乎是一种方法:

let data;
this.getData(id)
.subscribe(res => data = res)
console.log(data.items[0])
// more data processing

但是在这种情况下,我们得到错误,因为var 'data'没有初始类型。

类型错误: 无法读取未定义的属性"项">

为 json 响应创建接口听起来很愚蠢。我错过了什么?

此外,创建一个回调函数似乎也是多余的,因为它需要 2 个函数来完成应该是单个函数的工作。

因为var 'data'没有初始类型。

不。该错误是因为数据undefined。TypeScript 足够聪明,可以看到data没有 https://basarat.gitbooks.io/typescript/content/docs/javascript/recap.html 初始化。代码的执行顺序如下:

let data; // 1 
this.getData(id)
.subscribe(res => data = res) // 3!
console.log(data.items[0]) // 2

更多

请在JavaScript/TypeScript中查找异步编程。基本上,您只能在调用subscribe后使用数据。

最新更新