angular - Angular - 可观察函数的问题
问题描述
我正在为一个组件编写打字稿代码。在这个类打字稿中,我做了一个函数将返回一个表示数组长度的数字。我需要这个函数像 Observable 一样工作。但我收到此错误“数字不可分配给 Observable 类型”
NumItemsCart():Observable<number>{
let string_items = '';
let array_temp = [];
let num_items=0;
string_items = localStorage.getItem('ecmm_list_shopcart');
array_temp= cadena_items.split(',')
num_items= array_temp.length -1
return num_items
}
解决方案
好吧,那是因为预期的返回类型 ( Observable<number>
) 与您的实际返回类型 ( ) 不匹配number
。将值作为可观察值返回的最简单方法是使用of()
RxJS 的函数(请参阅此处的文档)
因此,稍微简化一下,您的最终代码应如下所示:
import { of } from 'rxjs';
NumItemsCart(): Observable<number> {
let string_items = '';
let array_temp = [];
string_items = localStorage.getItem('ecmm_list_shopcart');
array_temp= cadena_items.split(',')
return of(array_temp.length - 1)
}
const itemsLength: Observable<number> = NumItemsCart()
推荐阅读
- excel - SSIS:Excel 源在 258 列之后停止添加列
- javascript - Vue 子路由
- amazon-web-services - 当 aws 胶水作业运行时间超过阈值时间时如何发送失败通知
- python - 有什么方法可以减少代码以更新 mysql python 中的多个列?
- python - Python 全局 Sig Fig 设置
- google-cloud-platform - 如何在 Data Studio 自定义查询中配置数据库标志?
- javascript - 如何更改值属性的数据类型?
- sql - Oracle JOIN 导致无效的表名
- typescript - 根据参数向对象添加属性
- case - NetSuite 自定义文本公式