数据:未知对象在 angular 中的管道和映射函数中属于 'unknown'.ts 类型
data: unknown Object is of type 'unknown'.ts in pipe and map functions in angular
我正在尝试 return angular 中的管道和映射运算符中的一些数据,但出现此错误:(参数)数据:未知
对象的类型为 'unknown'.ts(2571)
我正在使用 angular 12+ 版本。
我试图在控制台上将数据修改为“Round: 0”、“Round: 1”等而不是 1、2 等
这是我在 home.component.ts 文件中的代码
import { Component, OnDestroy, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
import { Subscription } from 'rxjs';
import { interval } from 'rxjs';
import { filter } from 'rxjs/operators';
import { map } from 'rxjs/operators';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit, OnDestroy {
private counterSubsciption!: Subscription;
constructor() { }
ngOnInit() {
// this.counterSubsciption = interval(1000).subscribe(count => {
// console.log(count);
// })
const firstObservable = new Observable(observer => {
let count = 0;
setInterval(() => {
observer.next(count);
if(count===2){
observer.complete();
}
if(count>3){
observer.error("Count is greater than 3!");
}
count++;
},1000)
});
this.counterSubsciption = firstObservable.pipe(filter((data) =>{
return data > 0;
}),map((data) => {
return data;
})).subscribe((data) => {
console.log(data);
}, error => {
console.log(error);
alert(error);
}, () => {
console.log('Completed!')
}
)
}
ngOnDestroy() {
this.counterSubsciption.unsubscribe();
}
}
阅读 Rxjs 运算符 来自 https://www.learnrxjs.io/learn-rxjs/operators/creation/interval
您可以使用 RxJs interval
运算符,而不是用 new Observable
包装 setInterval
。
const firstObservable = interval(1000)
.pipe(
tap((data) => {
if (data > 3) {
throw 'Count is greater than 3!';
}
}),
map((data) => {
return 'Round' + data;
})
);
firstObservable.subscribe({
next: (data) => console.log(data),
error: (err) => console.error(err),
});
我正在尝试 return angular 中的管道和映射运算符中的一些数据,但出现此错误:(参数)数据:未知 对象的类型为 'unknown'.ts(2571)
我正在使用 angular 12+ 版本。
我试图在控制台上将数据修改为“Round: 0”、“Round: 1”等而不是 1、2 等
这是我在 home.component.ts 文件中的代码
import { Component, OnDestroy, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
import { Subscription } from 'rxjs';
import { interval } from 'rxjs';
import { filter } from 'rxjs/operators';
import { map } from 'rxjs/operators';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit, OnDestroy {
private counterSubsciption!: Subscription;
constructor() { }
ngOnInit() {
// this.counterSubsciption = interval(1000).subscribe(count => {
// console.log(count);
// })
const firstObservable = new Observable(observer => {
let count = 0;
setInterval(() => {
observer.next(count);
if(count===2){
observer.complete();
}
if(count>3){
observer.error("Count is greater than 3!");
}
count++;
},1000)
});
this.counterSubsciption = firstObservable.pipe(filter((data) =>{
return data > 0;
}),map((data) => {
return data;
})).subscribe((data) => {
console.log(data);
}, error => {
console.log(error);
alert(error);
}, () => {
console.log('Completed!')
}
)
}
ngOnDestroy() {
this.counterSubsciption.unsubscribe();
}
}
阅读 Rxjs 运算符 来自 https://www.learnrxjs.io/learn-rxjs/operators/creation/interval
您可以使用 RxJs interval
运算符,而不是用 new Observable
包装 setInterval
。
const firstObservable = interval(1000)
.pipe(
tap((data) => {
if (data > 3) {
throw 'Count is greater than 3!';
}
}),
map((data) => {
return 'Round' + data;
})
);
firstObservable.subscribe({
next: (data) => console.log(data),
error: (err) => console.error(err),
});