Angular SwUpdate已激活弃用警告。

5
在我的Angular项目中,我有这样的代码:
this.swUpdate.available.subscribe(() => {
  ...
});

它的功能很好,但是给了我一个关于activated被弃用的警告。

我应该怎么做来解决这个警告?

2个回答

10

我相信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,
  })));

我该如何更频繁地检查?感觉它每隔20分钟就会检查一次。我想每分钟检查一次。 - Mark Denn
每分钟运行swUpdate.checkForUpdate()。 - jiroch

5
你必须将activated更改为activateUpdate()并将其视为Promise
this.swUpdate.activateUpdate().then(() => {
 ...
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接