观察到的转变是好的承诺吗?

乔治·瑙莫夫(Georgi Naumov)

我有一个问题并解决了,但希望收到几个问题的答案。我需要通过Angular HttpClient的post方法发送一些数据。在开始时,我以这种方式实现了请求:

this.http.post<{name: string}>('some/url/address', {name}, httpOptions).subscribe((response) => {
  console.log('the request was sucessfull' + response.name);
});

但是我注意到,当我删除订阅时,请求根本不会启动。我结束了将可观察到的那样转换为:

this.http.post<{name: string}>('some/url/address', {name}, httpOptions).toPromise();

并且它正常工作。我的问题是:

  1. 有更好的方法吗?
  2. 该解决方案会带来什么负面影响?
  3. 有没有办法使它保持可观察性,但要求没有订阅就开始?
  4. 这样的行为是什么原因?性能调优?

预先感谢您的回答。

阿里F50

1.)我认为您的第一种方式可以订阅。

2.)promise解决方案的负面影响是,我们放弃了丰富的RxJS库的功能,进入了promise领域。我们无法利用map, switchMap, mergeMap, catchError, withLatestFrom加上的其他众多运算符RxJS兑现承诺路线的另一个负面影响是,一旦“兑现了承诺”,它就必须以成功或错误返回。随着观察到,尽管我们订阅它,并将其发送到“飞”,我们可以取消(因此即使不使所有的API调用)中期飞行使用,我相信(在认购回拨踢之前)takeUntil和API不会拨打电话。

3.)这是不可能的,必须订阅一个流才能将其发射/“起飞”。

4.)是的,您是正确的。与2有种联系,您可以通过retry, catchError, takeUntil取消订阅来获得更丰富的体验

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

转换可观察到列表

来自分类Dev

Ember组件可以观察到控制器属性吗?

来自分类Dev

OCMockObserver:观察到意外通知

来自分类Dev

测试未观察到的异常

来自分类Dev

可观察到的createasync

来自分类Dev

可观察到的错误

来自分类Dev

继承中观察到的奇怪行为

来自分类Dev

可观察到RxJava的后备

来自分类Dev

如何判断任务是否被“观察到”?

来自分类Dev

RxJs可观察到的分页

来自分类Dev

RxJs数组可观察到的数组

来自分类Dev

角度2可观察到的间隔

来自分类Dev

RXJS可观察到的doSomething onComplete

来自分类Dev

Angular2:可观察到的回报承诺

来自分类Dev

RxJs从产生的承诺中创建可观察到的

来自分类Dev

当source是一个类时,可以从rxjs中观察到“ this”元素吗?

来自分类Dev

退订可观察到的一个标签会禁用所有标签吗?

来自分类Dev

当第二个可观察到的变化时,combinateLatest不发光吗?

来自分类Dev

可从阵列观察到的RxJs

来自分类Dev

在授权保护中可观察到的承诺混合

来自分类Dev

Firebase中可观察到的后端?

来自分类Dev

承诺可观察到的节点js循环

来自分类Dev

从被拒绝的承诺中观察到的回报

来自分类Dev

变量可以在PyMC3模型中用作“观察到的”数据吗?

来自分类Dev

可以观察到RxJS的EMPTY类型签名吗?

来自分类Dev

可观察到的提交时没有刷新吗?Knockoutjs(提供提琴)

来自分类Dev

可观察到可观察的顺序

来自分类Dev

可以观察到带有剔除的数字动画行为吗?

来自分类Dev

当source是一个类时,可以从rxjs中观察到“ this”元素吗?