У меня есть довольно простой случай использования:RxJs: Как реализовать HTTP удалить с flatMap
- Там в
table
с некоторыми записями (каждый из которых имеет уникальный идентификатор и номер индекса) - Каждая запись имеет удаления
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
(и, конечно же, это не предполагается!).
Я думаю, что это довольно распространенный вариант использования. Но я не нашел решения в Интернете.
У вас есть идеи, как его решить?