为什么在Angular 7的PreloadingStrategy的preload()方法中需要load()作为参数

时间:2019-03-07 13:37:51

标签: angular angular-ui-router

我完成了对角度routing and navivgation的预加载ngModule的介绍。我对PreloadingStrategy class的预加载方法有疑问。为什么需要第二个参数fn: () => Observable<any>?请参阅本指南中的示例代码。自定义的PreloadingStrategy类必须在已实现的preload方法中调用load()

export class SelectivePreloadingStrategyService implements PreloadingStrategy {
  //...
  preload(route: Route, load: () => Observable<any>): Observable<any> {
    if (<determine if preload>) {
      return load();
    } else {
      return of(null);
    }
}

尽管如此,如果预加载只是返回布尔值或可观察值,它应该非常简单,易于使用和易于理解,例如以下代码。该框架根据同步或异步返回值执行load()工作。

preload(route: Route): boolean | Observable<any> {
  if (<determine if preload>{
    return true; // or return of(true);
  } else {
    return false; // or return of(false);
  }
}

0 个答案:

没有答案