2016-06-14 14 views
0
var quakes = Rx.Observable.interval(5000).flatMap(function() { 
     return Rx.DOM.jsonpRequest({ 
      url: QUAKE_URL, 
      jsonpCallback: 'eqfeed_callback' 
     }).retry(3); 
    }) 
    .flatMap(function(result) { 
     return Rx.Observable.from(result.response.features); 
    }) 
    .distinct(function(quake) { 
     return quake.properties.code; 
    }); 

quakes.subscribe(function(quake) { 
    var coords = quake.geometry.coordinates; 
    var size = quake.properties.mag * 10000; 
    console.log(1); 
    L.circle([coords[1], coords[0]], size).addTo(map); 
}); 

私は地震の結果から観測可能なものを作りたいのですが、どうすればよいでしょうか?RxJsは他の観測結果から観測可能なものを作成します

オプション1:私は、私は完全な深さの問題を理解していないので、私はあなたにいくつかのヒントを与えることができ、空の観測可能の作成に関する唯一のアイデアを任意の方法を見つけて、既存の地震

答えて

2

とcocanません。あなたが結果と異なる事をしたい場合は、quakesで複数回を購読することができます。

オプション2の代わりに加入し、その結果をログに記録するのは、それを代わりにmapし、新しい結果、例えば上で購読することができ

var quakesResult = quakes.map(function(quake) { 
    var coords = quake.geometry.coordinates; 
    var size = quake.properties.mag * 10000; 
    console.log(1); 
    return L.circle([coords[1], coords[0]], size); 
}); 
quakesResult.subscribe(...); 

あなたは、例えば、あなたの購読方法で円を追加したときに、あなたに通知するSubjectを使用することができます3.オプション

var mySubject = new Rx.Subject(); 
quakes.subscribe(function(quake) { 
    var coords = quake.geometry.coordinates; 
    var size = quake.properties.mag * 10000; 
    console.log(1); 
    L.circle([coords[1], coords[0]], size).addTo(map); 
    mySubject.onNext(); 
}); 
mySubject.subscribe(function() { console.log('was added');}); 
+0

感謝!私にとって素晴らしい第二の選択肢!私は、ポップアップ詳細については、ホバー方法をwrire –

関連する問題