【发布时间】:2022-01-12 16:03:35
【问题描述】:
在我的 Angular 项目中,我有这样的代码:
this.swUpdate.available.subscribe(() => {
...
});
它工作正常,但给了我关于 activated 被弃用的警告。
我应该怎么做才能解决这个警告?
【问题讨论】:
标签: angular deprecated angular-service-worker
在我的 Angular 项目中,我有这样的代码:
this.swUpdate.available.subscribe(() => {
...
});
它工作正常,但给了我关于 activated 被弃用的警告。
我应该怎么做才能解决这个警告?
【问题讨论】:
标签: angular deprecated angular-service-worker
你必须把activated改为activateUpdate(),并把它当作Promise:
this.swUpdate.activateUpdate().then(() => {
...
});
【讨论】:
我相信activated 和activateUpdate() 是不同的东西。你打电话给activateUpdate(),然后当它完成时,activated就会发生。
此外,activated 和 available 绝对是不同的东西(您的问题同时引用了两者)。 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,
})));
【讨论】: