Angular SwUpdate 激活 deprication
Angular SwUpdate activated deprication
在我的 angular 项目中,我有这样的代码:
this.swUpdate.available.subscribe(() => {
...
});
它工作正常,但给了我关于 activated
被弃用的警告。
我应该怎么做才能修复此警告?
您必须将 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,
})));
在我的 angular 项目中,我有这样的代码:
this.swUpdate.available.subscribe(() => {
...
});
它工作正常,但给了我关于 activated
被弃用的警告。
我应该怎么做才能修复此警告?
您必须将 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,
})));