我在尝试从浏览器获取cookie时遇到以下问题,但是我需要在它们出现时获取它们。它们中的一些不会立即显示,因此我尝试使用以下代码来使它们出现。我在编辑器中看到的错误是:
类型“ {}”上不存在属性“订阅”
import { CookieService } from 'ngx-cookie-service';
this._cookieService.getAll().subscribe((result) => {
console.log(result);
});
有人可以帮忙吗
答案 0 :(得分:2)
对应于文档,getAll函数返回具有键值对的映射。因此无需订阅。
https://www.npmjs.com/package/ngx-cookie-service
var result = this._cookieService.getAll();
如果您想收到Cookie更改的通知,则可能最终编写了一个函数,该功能会定期检查更改,例如此处其他答案或有关以下其他问题的建议:can i be notified of cookie changes in client side javascript
ngx-cookie-service没有提供任何帮助程序来达到此目的(我通过一些研究发现也没有提供任何其他cookie帮助程序库)。
答案 1 :(得分:2)
ngx-cookie-service
的getAll()方法返回的对象不可观察。
它是: getAll():{}
只需使用:
result = this._cookieService.getAll();
答案 2 :(得分:1)
您可以基于rxjs timer()编写具有轮询功能的服务,该服务可以连续检查cookie:
private timer$: Subscription = new Subscription();
public polling(frequency = 1000 * 60 * 5) {
this.timer$.unsubscribe();
this.timer$ = timer(0, frequency).subscribe(
() => this.result = this._cookieService.getAll();
);
}
希望这种方法对您有所帮助!