首页 > 解决方案 > 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
  }

标签: angulartypescriptobservable

解决方案


好吧,那是因为预期的返回类型 ( 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()

推荐阅读