Отклонение потока keferjs, но не по коду ==13(возврат)

Я хочу дебатировать на всех нажатиях клавиш, кроме возврата. Я попробовал следующее, но это не разоблачает.

some_stream.flatMap((event) => {
                            if(event.keyCode == 13){
                                return Kefir.stream(emitter => {
                                    emitter.emit(event.target.value);
                                });
                            }else{
                                const debounced_stream = Kefir.stream(emitter => {
                                    emitter.emit(event.target.value);
                                }).debounce(1000)
                                return debounced_stream;
                            }

                        })

1 ответ

Решение

Я смог решить эту проблему с помощью блока кода ниже, который разбирается на каждом ключевом коде, кроме 13:

const search_stream = Kefir.fromEvents(self.search_keyword._tag.input, 'keyup');
                const debounced_search_stream = search_stream
                        .filter((event) => {
                            return event.keyCode != 13;
                        })
                        .map((event) => {
                            return event.target.value;
                        })
                        .debounce(1000);
                const not_debounced_search_stream = search_stream
                        .filter((event) => {
                            return event.keyCode == 13;
                        })
                        .map((event) => {
                            return event.target.value;
                        })
                Kefir.merge([debounced_search_stream, not_debounced_search_stream]).onValue(keyword => {
                    if(keyword !== null){
                        if (keyword) {
                            //do something
                        }
                    }
                })
Другие вопросы по тегам