【问题标题】:check transaction exist in rxjs检查 rxjs 中是否存在事务
【发布时间】:2021-08-11 16:46:03
【问题描述】:
 private transactions = new BehaviorSubject([]);
  

   getTransactions(): Observable<ITransaction[]> {

     return this.transactions.asObservable();

  }

checkTransactionsExist():Observable<boolean>  {
   
  return this.getTransactions().pipe(map((results:any) =>  results.length > 0 ? true));
     
} // i need to check data exist of transactions 

但是我遇到了错误..我做错了什么请告诉我

错误:

  1. “未知[]”类型的参数不能分配给类型参数 'OperatorFunction'。键入“未知 []” 不提供签名的匹配项'(来源: Observable): Observable'。

编辑:我需要检查交易行为主题数组..如果数据存在或为假,我需要返回 true

【问题讨论】:

  • 如果你这样做map((results: ITransaction[])怎么办?
  • “unknown[]”类型的参数不能分配给“OperatorFunction”类型的参数。类型 'unknown[]' 与签名 '(source: Observable): Observable'.ts(2345) 不匹配
  • 好的,那么还有 BehaviorSubject([])
  • 我只需要根据私人交易检查真假 = new BehaviorSubject([]);
  • 不应该是results.length &gt; 0 ? true : false吗?

标签: angular typescript ionic-framework


【解决方案1】:

尝试以下方法来帮助解决此错误。这是添加类型并更新无效的三元语句。它是无效的,因为你没有 else 条件。话虽如此,您可以简化退货。 results.length &gt; 0 与results.length &gt; 0 ? true : false 相同:

private transactions = new BehaviorSubject<ITransaction[]>([]);

getTransactions(): Observable<ITransaction[]> {
  return this.transactions.asObservable();
}

checkTransactionsExist():Observable<boolean>  {
  return this.getTransactions().pipe(map((results:ITransaction[]) => results.length > 0));   
}

【讨论】:

  • 谢谢..实际上我的错误是我使用 jquery map 而不是 rxjs..
  • 如果我需要承诺我需要改变什么?
  • @Glen 我会为此提出一个新问题。
  • @conor 不使用 to promise() 方法,即直接使用行为主体是否可能?
  • myPromise().then(results => results.length > 0) 或者我猜来自(myPromise()).pipe(map(results => results.length > 0))) 也许
【解决方案2】:

从第一个错误开始:

':' 预期。(1005)

results.length &gt; 0 ? true 是无效语法:三元表达式也需要“else”部分(例如: something)。

如果您正在寻找true 或false 值,results.length &gt; 0 已经是:

  return this.getTransactions().pipe(map((results: any) => results.length > 0));

请注意,!!results.length 也返回一个布尔值,并将产生与results.length &gt; 0 相同的效果(因为results.length 永远不会是负数,0 可以强制转换为false)。有关性能说明,请参阅 here。

【讨论】:

    猜你喜欢
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多