首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >类型“{}”上不存在属性“订阅”

类型“{}”上不存在属性“订阅”
EN

Stack Overflow用户
提问于 2019-10-16 08:46:28
回答 3查看 338关注 0票数 0

我有以下问题,我试图从我的浏览器中获取cookie,但是我需要在它们出现时获得它们。它们中的一些不会立即出现,所以我试图使用下面的代码来获取它们。我在编辑中看到的错误是:

类型“{}”上不存在属性“订阅”

代码语言:javascript
复制
import { CookieService } from 'ngx-cookie-service';

this._cookieService.getAll().subscribe((result) => {
  console.log(result);
});

有人能帮忙吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-16 08:54:07

ngx-cookie-service的getAll()方法返回不可观测的对象。

它是:getAll():{}

只需使用:

代码语言:javascript
复制
result = this._cookieService.getAll();

检查文档

票数 2
EN

Stack Overflow用户

发布于 2019-10-16 08:53:55

与文档对应,getAll函数返回带有键值对的映射。所以没必要订阅它。

https://www.npmjs.com/package/ngx-cookie-service

代码语言:javascript
复制
var result = this._cookieService.getAll();

如果您想得到cookie更改的通知,您可能会编写一个函数,定期检查所建议的更改,比如这里的其他答案或其他问题:客户端javascript中的cookie更改是否可以通知我?

ngx服务没有提供任何帮助来达到这个目的(我通过一些研究发现的其他cookie助手库也没有)。

票数 2
EN

Stack Overflow用户

发布于 2019-10-16 09:00:42

您可以使用基于rxjs timer()的轮询函数编写一个服务,该服务持续检查cookie:

代码语言:javascript
复制
 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();
        );
    } 

我希望这个方法对你有帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58409266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档