Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何将阵列转换为角度为10的可观测阵列?_Angular_Typescript_Observable_Angular Observable - Fatal编程技术网

Angular 如何将阵列转换为角度为10的可观测阵列?

Angular 如何将阵列转换为角度为10的可观测阵列?,angular,typescript,observable,angular-observable,Angular,Typescript,Observable,Angular Observable,我正在做一个来自双子座比特币websocket的简单数据显示。我可以订阅websocket并在订阅功能中处理传入的消息。这一切都按预期进行。dataFromMessages在处理新消息时更改值 让消息中的数据成为可观察数据的下一步是什么? 我知道如果它是可观察的,那么我可以在html中使用“| async”。或者我可以订阅可观察的。但我不知道如何让它成为可观察的。是否使用or()函数 输出.component.ts import { Component, OnInit } from '@angu

我正在做一个来自双子座比特币websocket的简单数据显示。我可以订阅websocket并在订阅功能中处理传入的消息。这一切都按预期进行。dataFromMessages在处理新消息时更改值

让消息中的数据成为可观察数据的下一步是什么?

我知道如果它是可观察的,那么我可以在html中使用“| async”。或者我可以订阅可观察的。但我不知道如何让它成为可观察的。是否使用or()函数

输出.component.ts

import { Component, OnInit } from '@angular/core';
import { UserWebsocketService } from '../services/user-websocket.service';

export class OutputComponent implements OnInit{

  dataFromMessages;

  constructor(private websocket: UserWebsocketService){}

  ngOnInit(): void {
    this.websocket.connect('wss://api.gemini.com/v1/marketdata/btcusd')
    .subscribe(message => this.process_message(message));
  }

  process_message(message){
    // *** do processing here with incoming message object***
    
    this.dataFromMessages = processed_data;
  }
}
output.component.html

<table>
  <thead>
    <tr> <th>Bid</th> <th>Ask</th> </tr>
  </thead>
  <tbody>
    <tr *ngFor="let item of dataFromMessages">
      <td>{{ item.bid }}</td>
      <td>{{ item.ask }}</td>
    </tr>
  </tbody>
</table>

招投标
{{item.bid}
{{item.ask}

将消息中的数据初始化为可观察的

dataFromMessages$: Observable<any>;
并在
process_message
方法中返回已处理的消息

process_message(message){
   // *** do processing here with incoming message object***

   return processed_data;
}
在模板中使用异步管道订阅和读取数据

<tr *ngFor="let item of dataFromMessages$ | async">
  <td>{{ item.bid }}</td>
  <td>{{ item.ask }}</td>
</tr>

{{item.bid}
{{item.ask}

将消息中的数据初始化为可观察的

dataFromMessages$: Observable<any>;
并在
process_message
方法中返回已处理的消息

process_message(message){
   // *** do processing here with incoming message object***

   return processed_data;
}
在模板中使用异步管道订阅和读取数据

<tr *ngFor="let item of dataFromMessages$ | async">
  <td>{{ item.bid }}</td>
  <td>{{ item.ask }}</td>
</tr>

{{item.bid}
{{item.ask}

您应该将dataFromMessages声明为所需类型的可观察数据。 然后在ngOnInit()中,在管道中使用rxjs map()操作符进行处理并返回它。在这里,您可以使用消息“normal”,管道完成后,它将是一个可观察的转换,使用您在管道内使用的操作符

然后在HTML中使用异步管道


{{item.bid}
{{item.ask}
dataFromMessages$:可观察;
ngOnInit():void{
dataFromMessages$=this.websocket.connect('wss://api.gemini.com/v1/marketdata/btcusd)。烟斗(
映射(消息=>{
//在这里做我的量子物理和信息处理
返回处理后的数据;
})
);
}

您应该将dataFromMessages声明为所需类型的可观察数据。 然后在ngOnInit()中,在管道中使用rxjs map()操作符进行处理并返回它。在这里,您可以使用消息“normal”,管道完成后,它将是一个可观察的转换,使用您在管道内使用的操作符

然后在HTML中使用异步管道


{{item.bid}
{{item.ask}
dataFromMessages$:可观察;
ngOnInit():void{
dataFromMessages$=this.websocket.connect('wss://api.gemini.com/v1/marketdata/btcusd)。烟斗(
映射(消息=>{
//在这里做我的量子物理和信息处理
返回处理后的数据;
})
);
}

难道你不能将你的DataFromMessage键入为Observable并使用rxjs中的
from()
方法吗?难道你不能将你的DataFromMessage键入为Observable并使用rxjs中的
from()
方法吗?我实际上只是在寻找更简单的答案“映射”而不是“点击”。非常感谢。是否可以将一个传入的可观察对象(websocket)拆分为多个可观察对象?使用map(),我可以将所需的所有数据放入dataFromMessages$.prices、dataFromMessages$.Quantilities等中,并订阅顶级dataFromMessages$。有没有一种方法可以将它们分割成单独的可观察对象,这样它们就可以分别更新html的不同部分?我可以使用dataPrices$=of(message.prices),DataQuantilities$=of(message.quantilities)设置map()函数中的每个可观察值吗?是的,你可以试试看,让我知道它是否有效。我实际上只是在寻找更简单的答案“map”而不是“tap”。非常感谢。是否可以将一个传入的可观察对象(websocket)拆分为多个可观察对象?使用map(),我可以将所需的所有数据放入dataFromMessages$.prices、dataFromMessages$.Quantilities等中,并订阅顶级dataFromMessages$。有没有一种方法可以将它们分割成单独的可观察对象,这样它们就可以分别更新html的不同部分?我可以使用dataPrices$=of(message.prices),dataquantitys$=of(message.quantitys)设置map()函数中的每个可观察值吗?是的,你可以试试,让我知道它是否有效。