gpt4 book ai didi

angular - 如何获得加载 Angular LazyModule 文件的进度?

转载 作者:太空狗 更新时间:2023-10-29 18:35:19 24 4
gpt4 key购买 nike

我想弄清楚如何为加载 Angular LazyLoaded 模块制作进度指示。

enter image description here

我可以更改预加载策略,但是否有一个钩子(Hook)可以订阅加载进度?

export class MyPreloadingStrategy implements PreloadingStrategy {
preload(route: Route, load: Function): Observable<any> {
return of(true).pipe(flatMap(_ => load()));
}
}

是否可以订阅 load 至少知道它何时加载?

最佳答案

您可以订阅Router.events https://angular.io/guide/router#router-events

RouteConfigLoadStart

An event triggered before the Router lazy loads a route configuration.

RouteConfigLoadEnd

An event triggered after a route has been lazy loaded.

假设您有以下惰性路线:

{
path: 'lazy', loadChildren: () => import('./lazy/lazy.module').then(m => m.LazyModule)
}

下面是如何 Hook 到这个模块的加载过程:

import { RouteConfigLoadEnd, RouteConfigLoadStart, Router } from '@angular/router';

...
constructor(private router: Router) {
router.events.subscribe((
event => {
if (event instanceof RouteConfigLoadStart && event.route.path === 'lazy') {
console.log('START');
}
if (event instanceof RouteConfigLoadEnd && event.route.path === 'lazy') {
console.log('FINISH');
}
}));
}

关于angular - 如何获得加载 Angular LazyModule 文件的进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57014181/

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