Angular SwUpdate 激活 deprication

Angular SwUpdate activated deprication

在我的 angular 项目中,我有这样的代码:

this.swUpdate.available.subscribe(() => {
  ...
});

它工作正常,但给了我关于 activated 被弃用的警告。

我应该怎么做才能修复此警告?

您必须将 activated 更改为 activateUpdate() 并将其视为 Promise:

this.swUpdate.activateUpdate().then(() => {
 ...
});

我认为 activatedactivateUpdate() 是不同的东西。您调用 activateUpdate(),然后当它完成时,activated 发生。

此外,activatedavailable 绝对是不同的东西(你的问题都提到了)。 available 表示检测到更新; activated表示已安装。

根据文档 (https://angular.io/api/service-worker/SwUpdate),available 的替换为:

import {filter, map} from 'rxjs/operators';
// ...
const updatesAvailable = swUpdate.versionUpdates.pipe(
  filter((evt): evt is VersionReadyEvent => evt.type === 'VERSION_READY'),
  map(evt => ({
    type: 'UPDATE_AVAILABLE',
    current: evt.currentVersion,
    available: evt.latestVersion,
  })));