如何设置RxJS.Observable.timer()到期日期
问题描述:
我有一个身份验证系统,它有几个信息,包括一个expires_in
属性,以秒为单位声明。这会通知生成的令牌何时过期,为了处理这个问题,我使用了RxJS.Observable
的概念。如何设置RxJS.Observable.timer()到期日期
随着expires_in
价值,我计算到期日产生Date
对象,增加它与到期值,并得到它的时间与getTime()
,在milisseconds,以及与此我有到期日。
当我宣布RxJS.Observable
,我在做这样的:
// The code is shortened to the relevant part
let obs = Observable.timer(dueVar) // Which is in milisseconds
.subscribe(
(x) => console.log(x),
(x) => console.log(x),
() => console.log('Expired') // onComplete, right? Only this one matters to me...
);
我试图把,哪里是dueVar
的Date
对象,但没有成功可言......代码段抛出subscribe()
函数的第一个参数为0 [Number]
,并立即抛出Expired
,这是最后一个参数。
如何进行此操作?对于这个问题,我没有任何相关的解释......第二个参数,正如我在文档中看到的那样,它是可选的,并且用于在每个宣布的时间内调用onNext
回调。但我只需要派遣一次。
答
关于评论,它变得更加清楚我需要做什么。
我正在考虑以绝对方式的时间,但如果我将使用milisseconds,作为@paulpdaniels说,时间需要从现在,这使得一个巨大的差异相对。
因此,尽管从1970年代开始用整个时间戳通知参数,但我只需要使用expires_in
属性乘以1000来将其从几秒变为毫秒。
你可以用样本输入和预期输出制作大理石图吗?看起来像你可以使用'delay'运算符 – user3743222
为什么你说你有一个'dueVar'这是一个日期对象,但在你说的代码中它是以毫秒为单位? – paulpdaniels
@paulpdaniels这是一个错字,我会解决这个问题,但在文档中他们说第一个参数可以是一个正整数或一个Date对象。 –