我真的很困惑,想知道是否有人可以帮助我尝试理解.subscribe in angular 2 rxjs .
如果我有一个带有按钮的页面来提交一些表单数据,我是否需要订阅才能发布信息或使用承诺?
正如我的理解是您订阅时,然后再次单击该按钮,您将有2个订阅实例,依此类推 . 现在我知道你要说什么了,你可以杀掉毁灭中的订阅或其他什么,但这不是我的问题 .
我的问题是,如果表单永远不会被销毁,直到您单击主页按钮并且表单在提交时清除以便提交更多数据,我是否需要使用Promise over Subscribe?由于订阅(根据我的理解)就像是时事通讯,您点击订阅的次数越多,您收到的时事通讯就越多 .
那么最好一遍又一遍地提交数据,而不需要多次订阅?
myObsFunc(dataToSend).subscribe(err => console.log(err),()=> console.log(success));
要么
myObsFunc(dataToSend).toPromise() . then() . catch(e => console.log(e));
2 回答
可观察者很懒惰您可以将懒惰的可观察者视为新闻通讯 . 为每个订阅者创建一个新的简报 . 然后他们只发送给那些人,而不是其他任何人 .
随着时间的推移,Observable可以拥有多个值现在,如果您保持订阅开放的简报,您将每隔一段时间获得一个新的 . 发件人决定何时获得它,但您只需要等到它直接进入您的收件箱 .
如果你来自承诺的世界,这是一个关键的区别,因为承诺总是只返回一个值 . 另一件事是可观察物是可取消的 . 如果您不再需要简报,请取消订阅 . 承诺这是不同的,你不能取消承诺 . 如果承诺交给您,那么将产生该承诺解决方案的过程已经在进行中,并且您通常无权阻止该承诺的解决方案执行 .
Observable是流数据 . 希望这段代码能帮助您理解这一点 .