标签: rxjs6

rxjs采用运算符 - 用异步管道限制结果

我无法使用rxjs take()运算符限制模板中的显示结果,模板始终显示所有记录.

api http://jsonplaceholder.typicode.com/users返回10个元素,我只想拿四个元素.

[service]
public getData(): Observable<User[]> {
    return this.http.get<User[]>(`http://jsonplaceholder.typicode.com/users`).pipe(
       take(4)
      );
  }

[component]
export class GridComponent implements OnInit {

  _data : Observable<User[]>;

  constructor(public _ds : DataService) {  
  }

  ngOnInit() {
    this._data = this._ds.getData();
  }
}

[template]
<tr *ngFor="let d of _data | async">
        <td>{{d.id}}</td>
        <td>{{d.name}}</td>
        <td>{{d.email}}</td>
        <td>{{d.phone}}</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

rxjs angular angular-observable angular-httpclient rxjs6

0
推荐指数
1
解决办法
614
查看次数

输入'Observable <any [] | Observable <any [] >>'不能赋值为'Observable <any []>'

我正在使用ng-select v2angular 7.

我在下面的return语句中收到错误

getHospital(term: string = null): Observable<Hospitals[]> {
    let items = this.getHospitals1();
    if (term) {
      items = items.pipe(
        filter((x,i) => x[i].name.toLocaleLowerCase().indexOf(term.toLocaleLowerCase()) > -1)
      )
    }
    return of(items).pipe(delay(500));
  }
Run Code Online (Sandbox Code Playgroud)

3个错误说:

  • 类型'Observable>'不能分配给'Observable'类型.
  • 输入'Hospitals [] | Observable'不能分配给'Hospitals []'.
  • 类型'Observable'不能分配给'Hospitals []'.

这是我的getHospitals1函数

getHospitals1() : Observable<Hospitals[]>{
    return this.http.get<Hospitals[]>('https://my-json-server.typicode.com/monsterbrain/FakeJsonServer/hospitals')
   }

export interface Hospitals {
  id: string;
  name: string;
  address: string;
}
Run Code Online (Sandbox Code Playgroud)

应该改变什么来解决这个问题?

rxjs angular-ngselect angular rxjs6 angular7

0
推荐指数
1
解决办法
90
查看次数

如何使用RxJS运算符实现多个嵌套且相互依赖的订阅?

我嵌套了一些订阅,希望摆脱使用合适的RxJS运算符的麻烦。我已经尝试过concatMapmergeMap,但不幸的是我无法解决问题。

我有3个彼此依赖的订阅,它们在forEach循环中为当前循环的每个值触发一个新的可观察值。为了更详细地说明这一点,这是我的示例代码:

this.subscriptionOne = this.serviceOne.getStreets().subscribe((streets) => {
  streets.forEach((street) => {
    this.subscriptionTwo = this.serviceTwo.getMetaData(street.id).subscribe((metaDatas) => {
      metaDatas.forEach((md) => {
        // do some stuff and then trigger another observable..
        this.subscriptionThree = this.serviceTwo.getStuff(md.id, md.type, md.name).subscribe((stuff) => {
          // do some other stuff
        });
      });
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

如何摆脱RxJ的嵌套?

observable rxjs typescript angular rxjs6

0
推荐指数
1
解决办法
113
查看次数

现在如何在Javascript中为RxJS 6导入`take`?

看起来RxJS 6的打字输入现在更清楚,但在javascript中如何导入take运算符?

试过

import 'rxjs/operators/take';
Run Code Online (Sandbox Code Playgroud)

还尝试了ES6:

import { take } from 'rxjs/operators';
Run Code Online (Sandbox Code Playgroud)

但没有奏效.抱怨的投诉不是一种功能.

import rxjs6

-1
推荐指数
1
解决办法
2412
查看次数

Angular 6:类型为“ Observable &lt;Response&gt;”的错误模块“ rxjs / add / operator / map”和另一个错误“ map”不存在

我在使用Angular 6时遇到两个错误-

  1. 找不到./src/app/app/img/img.service.ts模块中的错误:错误:无法解析“ / Users / user / Projects / A4 / imageSearch / src”中的“ rxjs / add / operator / map” / app / app / img'

  2. src / app / app / img / img.service.ts(21,9)中的错误:错误TS2339:类型“可观察”的属性“映射”不存在。

npm rxjs angular angular6 rxjs6

-2
推荐指数
1
解决办法
6593
查看次数