2016-11-24 103 views
1

我正在使用此操作符,但區間操作符想要在可觀察的對象上它不存在於範圍內,有沒有辦法讓observable發出例如發出60爲1秒的間隔整數i一直在做這個如何使用rxjs發出一定範圍的特定範圍內的整數

this.clock = Observable.range(1,60); 
this.clock = this.clock.interval(1000).map(function(value){ 
    console.log(value) 
    return value; 
}) 

其說間隔不是函數

也嘗試這樣的:

this.clock = Observable.range(1,60).interval(1000).map(function(value){ 
    console.log(value) 
    return value; 
}) 
+0

你想在60秒內從0 60點的整數,以59或你想60點的整數時60秒,每個整數爲一定範圍內的一個隨機? – Maxime

+0

不是從1到60的連續時間間隔爲1秒 – blackHawk

回答

1
var clock = Observable 
       .interval(100) 
       .take(60) 
       .map(function(value){ 
       console.log(value) 
       return value; 
       }); 

使用take(count)。

+0

Range運算符會發出一系列連續整數,您之後使用的是間隔,因此會出錯。 – Manish

3

已經從1序列,以60爲1秒的時間間隔:

Observable 
    .interval(1000) 
    .map(x => x + 1) // to start from 1 instead of 0 
    .map(x => console.log(x)) // do some logic here 
    .take(60) 
    .subscribe(); 

這裏的輸出是:

1 
2 
3 
. 
. 
. 
58 
59 
60 

這裏,你可以看到運行後輸出的一個片段:

// just to have the working demo on SO 
 
let output = ''; 
 
let divToUpdate = document.getElementById('counter'); 
 

 
// observable 
 
Rx.Observable 
 
    .interval(1000) 
 
    .map(x => x + 1) // to start from 1 instead of 0 
 
    .map(x => { 
 
    output = `${output}<br>${x}`; 
 
    divToUpdate.innerHTML = output; 
 
    }) 
 
    .take(60) 
 
    .subscribe();
<div id="counter"></div> 
 

 
<script src="https://npmcdn.com/[email protected]/bundles/Rx.umd.js"></script>

2

Angular2:PLUNKER DEMO

export class App { 
    name:string; 

    constructor() { 
    this.name = 'Angular2' 

    let rangeObs = Observable.zip(
     Observable.range(0, 10), 
     Observable.interval(1000), 
     c => c); 

    rangeObs.subscribe(i => this.name = i;); 
    } 
} 
+0

c是什麼順序 – blackHawk

+0

'Observable.zip'用每個observable的值(即我們的例子中的range和interval)調用函數callback'c => c',但我們只關心'range observable '而不是'(v1,v2)=> v1 + v2'我寫了'fat arrow'函數的最短形式。打開[此鏈接](http://reactivex.io/documentation/operators/zip.html)並展開'Rxjs'部分以獲取更多信息 –

+0

當然,我知道爲什麼reactivex.io沒有打開我的身邊,它的東西獨角獸,我有一個問題,如果我們想使用rangeObs直接使用插值和異步管道查看? – blackHawk