angular - 订阅 Observable(联合类型)为字符串值提供 NaN
问题描述
在一个组件中,我有一个这样定义的公共成员:
public documentId$: Observable<number | string>;
基本上,文档 ID 可以是整数或字符串。在ngOnInit
我有:
this.documentId$.subscribe(value => {
// do some stuff with value
// when value is a string, it is NaN
});
但是,当文档 ID 是字符串时,这不起作用。它只是作为NaN
. 联合类型的可观察对象不起作用吗?有没有解决的办法?
解决方案
我没有看到使用联合类型的问题。检查你得到的数据。这个有效:https ://stackblitz.com/edit/angular-rur73e
import { Component } from '@angular/core';
import { Observable } from 'rxjs';
import { Subject } from 'rxjs';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
private subject = new Subject<number | string>();
public documentId$: Observable<number | string> = this.subject.asObservable();
ngOnInit() {
this.documentId$.subscribe(value => {
// do some stuff with value
// when value is a string, it is NaN
console.log(value);
});
this.subject.next("abc");
this.subject.next(3);
this.subject.next(Date.now());
}
}
控制台中产生的输出是:
abc
3
1571682486949
推荐阅读
- angular - 从 ng 获取生成的输入的值
- excel - 为 Excel 中的所有单元格添加随机前缀
- sql-server - 将每日日期添加到具有日期范围的表中
- android - 旧文件未在 Android Studio 中加载
- typescript - 具有一些已知但可选的属性名称和一些未知属性名称的对象的 Typescript 接口
- google-sheets - 为什么我的 Google 表格查询函数返回 product(n())?
- language-agnostic - 内存消耗会影响执行时间吗?
- python - 将 evdev 输入转换为可理解的信息
- api - 监控邮递员收集
- visual-studio - 如何为 NuGet 源包指定特定文件夹?