Я пытаюсь обойти вокруг реактивного программирования и наблюдаемых, конечно же безуспешно. У меня есть следующий код:RxJS уменьшает количество журналов как массива, но ошибка как объект
this.searchSubscription = this.filtersSubject
.takeLast(2)
.reduce((acc, cur) => {
console.log(acc);
acc.push(cur);
return acc;
}, [])
.debounceTime(1000)
.subscribe(x => this.emitFilters());
Я хотел использовать takeLast(2)
конвейера к reduce
, чтобы я мог превратить его в массив из двух значений, и фильтр определенных значений между двумя были разными. Я просматриваю документы за reduce
, даже передавая семя, но VS Code сообщает мне, что Property 'push' does not exist on type 'Object'.
, но console.log
показывает acc
как массив. Я озадачен тем, что происходит, и как это исправить. И, конечно, я могу решить эту проблему совершенно неправильно, что делает наблюдаемые достаточно трудными для понимания.
Спасибо за отзыв. У меня достаточно проблем, обертывая голову вокруг реактивного программирования, что-то вроде того, что заставляет меня думать, что я ошибаюсь ... Который я, вероятно, все еще есть. Знаете ли вы, могу ли я обойти это или сделать что-то еще в разное время? – RhoVisions
Кроме того, вы могли бы избежать ошибки и могли бы упростить свой код с помощью оператора '' toArray' '(http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-toArray). (И, поскольку наблюдаемое завершается, 'debounceTime' является избыточным и просто служит задержкой, так как он будет видеть когда-либо только одно значение - массив.) – cartant
Не прибегая к редактированию источника, есть несколько работ, но они довольно сложно. Это довольно серьезная ошибка, которая должна быть исправлена. Я удивлен, что она не сообщалась ранее. Возможно, это так. –