2016-05-16 68 views
0

我有一個身份驗證系統,它有幾個信息,包括一個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... 
    ); 

我試圖把,哪裏是dueVarDate對象,但沒有成功可言......代碼段拋出subscribe()函數的第一個參數爲0 [Number],並立即拋出Expired,這是最後一個參數。

如何進行此操作?對於這個問題,我沒有任何相關的解釋......第二個參數,正如我在文檔中看到的那樣,它是可選的,並且用於在每個宣佈的時間內調用onNext回調。但我只需要派遣一次。

+0

你可以用樣本輸入和預期輸出製作大理石圖嗎?看起來像你可以使用'delay'運算符 – user3743222

+0

爲什麼你說你有一個'dueVar'這是一個日期對象,但在你說的代碼中它是以毫秒爲單位? – paulpdaniels

+0

@paulpdaniels這是一個錯字,我會解決這個問題,但在文檔中他們說第一個參數可以是一個正整數或一個Date對象。 –

回答

0

關於評論,它變得更加清楚我需要做什麼。

我正在考慮以絕對方式的時間,但如果我將使用milisseconds,作爲@paulpdaniels說,時間需要從現在,這使得一個巨大的差異相對。

因此,儘管從1970年代開始用整個時間戳通知參數,但我只需要使用expires_in屬性乘以1000來將其從幾秒變爲毫秒。