在我的Angular项目中,我有这样的代码:
this.swUpdate.available.subscribe(() => {
...
});
它的功能很好,但是给了我一个关于activated
被弃用的警告。
我应该怎么做来解决这个警告?
this.swUpdate.available.subscribe(() => {
...
});
它的功能很好,但是给了我一个关于activated
被弃用的警告。
我应该怎么做来解决这个警告?
我相信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,
})));
activated
更改为activateUpdate()
并将其视为Promise
:this.swUpdate.activateUpdate().then(() => {
...
});