RxJs, не отображается в DOM, но консоль работает - PullRequest
0 голосов
/ 21 февраля 2019

Почему выходные данные отображаются только в одном из элементов (# skip-result или # Different-result), а не в обоих?

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

код вы можете проверить здесь

var input$ = Rx.Observable.fromEvent(input,'input')


var x$ = input$
  .debounce(1000)



// skip two character in string, from input value
// then, display it in #skip-result
x$
  .map(v=> v.target.value)
  .filter(v=> v.length > 2)
  .flatMap(v=> 
           Rx
             .Observable
             .from(v)
             .skip(2)
             .reduce((x,y)=> x + y)
  )
  .subscribe(s=>{
    $('#skip-result').text('Skip Value is ' + s)
  })



// search distinct in string, from input value
// then, display it in #distinct-result
x$
  .map(e=> e.target.value)
  .filter(e=> e.length > 0)
  .flatMap(v=> 
           Rx
             .Observable
             .from(v)
             .distinct()
             .reduce((x,y)=> x + y)
  )
  .subscribe(x=>{
    $('#distinct-result').text('Distinct value is ' +x)
  })

1 Ответ

0 голосов
/ 21 февраля 2019

В JSBin, на которую вы ссылались, вы не импортировали jQuery, но, похоже, вы используете селектор jQuery для установки содержимого элементов #skip-result и #distinct-result DOM.Это приведет к ошибке.

Если вместо этого вы изменили их, установив свойство innerHTML, которое, по-видимому, уже выполняет одна подписка, вы должны получить ожидаемое поведение.

.subscribe(s => {
  skipResult.innerHTML = 'Skip Value is ' + s
})

РЕДАКТИРОВАТЬ

После второго просмотра ваша разметка не закрывается должным образом.В частности, #skip-result делается дочерним от #distinct-result.

...