我有一個非常簡單的例子:RxJs:如何實現HTTP與flatMap
- 有一些條目的
table
(每一個都具有唯一的ID和索引號) - 每個條目已刪除
button
onclick
:調用subject.onNext
其然後執行一個HTTP經由flatMap
- 如果成功刪除呼叫:從表中刪除對應的行 倍
渲染HTML的外觀(簡體)像這樣:
<table>
<tr>
<td>Entry1</td>
<td><button onclick="delete.onNext({id:'a', index:0})"></td>
</tr>
<tr>
<td>Entry2</td>
<td><button onclick="delete.onNext({id:'b', index:1})"></td>
</tr>
</table>
刪除主題/可觀察:
var delete = new Rx.Subject()
.flatMap(function(data) {
return MyService.doHTTPDelete(data.id);
})
.retry() // keep the Subject alive if HTTP call fails
.doOnError(function(err) {
console.log("Something went wrong...", err);
})
.subscribe(function(???) {
// here I need the index
});
正如你所看到的,MyService.doHTTPDelete
調用什麼也不知道約data.index
(當然它不應該!)。
我認爲這是一個很常見的用例。但是我在網上找不到解決方案。
你有什麼想法如何解決它?