gpt4 book ai didi

angular - Angular 中的 .subscribe 是什么?

转载 作者:太空狗 更新时间:2023-10-29 16:47:05 27 4
gpt4 key购买 nike

我正在浏览 angular-tour-of-heroes 应用程序,我在路由中遇到了 .subscribe 方法。有人可以解释这里发生了什么吗?

应用链接:https://embed.plnkr.co/?show=preview

在 hero-detail.component.ts 文件中,

ngOnInit(): void {
this.route.paramMap
.switchMap((params: ParamMap) => this.heroService.getHero(+params.get('id')))
.subscribe(hero => this.hero = hero);
}

最佳答案

.subscribe不是 Angular2 的东西。

这是一个来自 rxjs 的方法Angular 在内部使用的库。

如果你能想象自己订阅了一份时事通讯,每次有新的时事通讯,他们都会将它发送到你家(调用订阅中的方法)。

这就是当您订阅杂志来源(在 Observable 图书馆中称为 rxjs)时发生的情况

所有 AJAX Angular 中的调用正在使用 rxjs在内部,为了使用它们中的任何一个,你必须使用方法名称,例如 get ,然后调用它的订阅,因为 get返回和Observable .

还有,写这段代码的时候<button (click)="doSomething()"> , Angular 正在使用 Observables在内部并为您订阅该事件源,在本例中为 click事件。

回到我们的类比 Observablesnewsletter stores ,在您订阅后,只要有新杂志,他们就会将其发送给您除非您去unsubscribe来自他们,您必须记住订阅号或 ID,在 rxjs 中情况会是这样的:

 let subscription = magazineStore.getMagazines().subscribe(
(newMagazine)=>{

console.log('newMagazine',newMagazine);

});

当你不想再拿到杂志时:

   subscription.unsubscribe();

同样的道理

 this.route.paramMap

返回一个 Observable然后你订阅它。

我个人的看法是rxjs是 JavaScript 世界中最伟大的事物之一,在 Angular 中甚至更好。

有 150~ rxjs方法(与 lodash 方法非常相似)而您正在使用的方法称为 switchMap

关于angular - Angular 中的 .subscribe 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44921788/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com