내 응용 프로그램에서 GUI 요소에 의해 변형 된 state
상태 개체가 있습니다. 이 상태가 변경 될 때마다 XHR이 실행되어 서버 측을 업데이트하고 현재 상태가 반환됩니다. 이것은 Bacon.js의 스트림에 잘 매핑됩니다.스트림의 현재 값을 bacon.js의 다른 스트림의 각 값과 결합하려면 어떻게해야합니까?
지금, 돌연변이 스트림 mutationEventStream
가정, 나는 이벤트 트리거와 이전 상태 값을 결합하여 내 상태를 업데이트하기 위해 노력하고있어 :
Bacon.onValues(state, mutationEventStream, function(data, event) {
dataUpdateBus.push(/* extract data from event */)
})
(dataUpdateBus
서버를 이동하는 데 필요한 모든 데이터 업데이트가 포함되어 있습니다. state
은 dataUpdateBus
에있는 데이터로 시작된 XHR에서 반환 한 것입니다.
문제를 올바르게 업데이트하려면 현재 상태 값이 필요합니다. 전역 변수가있는 경우 mutationEventStream
에 새 이벤트 만 필요하지만 스트림을 사용하면 내 state
스트림을 믹싱해야합니다. 위의 코드를 사용하면 데이터 업데이트로 state
의 모든 업데이트를 받고 있습니다. 즉, 무한 루프 (dataUpdateBus.push
-> XHR ->state
->dataUpdateBus.push
등)입니다. state
은 mutationEventStream
보다 자주 업데이트되므로 Bacon.zip()
을 사용할 수 없습니다.
내가 뭘 잘못하고 있으며 더 잘할 수 있습니까? 내가 제대로 이해하면
그래서 * onValues와 zip 사이의 중간 지점입니다! 예상대로 훌륭하게 작동합니다. 감사! –