小编mgr*_*nko的帖子

do(tap)vs subscribe

编辑:在RxJs 6之前,tap被称为do.更新的标题也反映了点击.

我想了解Observables 的使用.subscribe.do方法的最佳实践.

例如,如果我需要在从服务器加载初始数据后做一些工作

const init$: Observable<MyData> = this._dataService.getData();

init$
  .do((initialData: MyData) => {
    this.data = initialData; // at this step I am initializing the view
  })
  .switchMap(() => loadExtraData)
  .subscribe((extraData) => {
     doSomething(extraData, this._data); // I need this._data here
  }); 
Run Code Online (Sandbox Code Playgroud)

我可以这样做 .subscribe

const init$: Observable<MyData> = this._dataService.getData()
  .shareReplay(1);

init$
  .subscribe((initialData: MyData) => {
    this.data = initialData; // at this step I am initializing the view
  })

init$
  .combineLatest(loadExtraData)
  .subscribe(([initialData, extraData]) …
Run Code Online (Sandbox Code Playgroud)

javascript rxjs angular

15
推荐指数
2
解决办法
6486
查看次数

为什么Rxjs会在出错时取消订阅?

简而言之:如何在流中出现错误后继续监听,而不是.catch先放一个.subscribe

如果您需要更多详细信息,请访问:

让我们假设我有一个当前用户的主题或null.我有时从API获取数据并发送给主题.它相应地更新视图.但在某些时候我的服务器上发生错误,我希望我的应用程序继续像以前一样工作,但通知一些地方有关错误和KEEP听我的主题.

最初我认为如果我这样做userSubject.error(...)只会触发订阅上的.catch回调和error处理程序,并跳过所有成功处理程序和链.如果我打电话给userSubject.next(...)我所有的连锁店,订阅者将像以前一样工作

但不幸的是情况并非如此.在第一次未被捕获之后,.error它取消订阅流中的订阅者,并且它们不再操作.

所以我的问题:为什么??? 如果我想null正常处理值但是只在某些地方处理错误,该怎么做呢?

以下是RxJs源代码的链接,其中Subscriber取消订阅错误 https://github.com/ReactiveX/rxjs/blob/master/src/Subscriber.ts#L140

rxjs rxjs5

10
推荐指数
2
解决办法
3994
查看次数

PHPStorm代码模板

我想在PHPStorm中自定义默认的setter模板.

我想在return $this;setter模板中添加一行,但是我插入到模板中的空行被编辑器忽略如何在setter模板中的return语句之前插入一个空行?

templates phpstorm

7
推荐指数
1
解决办法
819
查看次数

如何在工厂提供程序中获取QueryParam(Angular4)

我想在我的应用程序中提供一个基于url的QueryParam的常量.

localhost:4200?flag=true
Run Code Online (Sandbox Code Playgroud)

在我的模块提供商中,我添加了

{ provide: FLAG, useFactory: FlagFactory, deps: [...] }
Run Code Online (Sandbox Code Playgroud)

所以我感兴趣的是,如果没有手动解析URL,有一种方法可以做到这一点

function FlagFactory() {
  return location.search.includes('flag');
}
Run Code Online (Sandbox Code Playgroud)

angular angular-router angular-di

5
推荐指数
0
解决办法
339
查看次数