您好我从RxJS开始,我有解决下一个问题但我不喜欢它,希望您能提供更好的解决方案:
想象一下,我们想要切换2个流:
然后,我们想要在它们之间切换,但是当其他有事件并且暂停时会恢复一个。例如。我们在成功时执行请求,执行超时,在完成请求时完成请求,在完成时执行超时,等等。
在我的解决方案中,我用间隔模拟了请求,并使用了" pausable()" ,但我不喜欢这个解决方案的可扩展性:
public function search()
{
$searchQuery = isset($this->request->query['q']) ? $this->request->query['q'] : "";
$searchQuery = "dfd";
$this->paginate = [
'contain' => ['Customers']
];
$projectsFiltered = $this->Projects->find('all')->where(['Projects.archived' => 0, 'Projects.name LIKE' => "%$searchQuery%"]);
$projects = $this->paginate($projectsFiltered);
$this->set(compact('projects'));
$this->set('_serialize', ['projects']);
$this->set('query', $searchQuery);
}
RxJS专家如何解决这个问题?
答案 0 :(得分:1)
你有问题的答案。 我建议使用switchMap http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-switchMap
requestStream.switchMap(()=>Rx.Observable.interval(500));
我不认为确实需要一个可以使用的东西。
<强>更新强>
由于OP要求第二个observable在第一个之后启动, 应该使用ConcatMap。