텍스트 파일에 발음 데이터가있는 단어 목록이 있습니다. 내가하고 싶은 것은 사용자가 단어를 입력하도록 한 다음 프로그램에서 해당 파일의 해당 단어에 대한 데이터가 있는지 확인하도록합니다. 나는 RxJs에서 그것을하고 싶습니다.RxJs 다른 관찰 가능 필터 적용하기
아래 코드는 내가 원했던 것 중 가장 근접한 코드입니다. 내 메인 스트림 내에서 'checkstream'이라는 종속 스트림을 만드는 필터 호출이 있습니다. 필자가 이해할 수없는 것은 주 스트림의 필터 메소드에서 종속 스트림의 결과를 사용하는 방법입니다. 현재 필터 메소드가 실패하지만 콘솔 로깅을 통해 데이터를 화면에 표시합니다.
내 텍스트 파일에 단어가 들어있는 데이터가있는 경우 체크 스트림은 결국 검색하고 사용자에게 표시하려는 데이터 만 포함하는 관찰 가능 데이터가됩니다. 어떻게 든 데이터를 메인 스트림의 소비자에게 보내고 싶지만 그렇게하는 방법을 모르겠습니다.
제공 할 수있는 도움에 감사드립니다. 심지어 약간의 직감만으로도 유용 할 것입니다.
var Rx = require('rx');
var RxNode = require('rx-node');
var fs = require('fs');
var split = require('split');
RxNode.fromReadableStream(process.stdin)
.map((inputData) => {
var inputWord = inputData.toString().trim();
return inputWord;
})
.map((inputWord) => {
var checkStream = fs.createReadStream('./dict.txt');
RxNode.fromReadableStream(checkStream.pipe(split()))
.map((lineFromFile) => {
return JSON.parse(lineFromFile);
})
.filter((parsedDataToCheck) => {
return parsedDataToCheck.word.toLowerCase().trim() === inputWord; })
.subscribe((dataThatMatches) => { console.log(dataThatMatches) });
return dataToReturn;
})
.subscribe(function(dataToReturn) {
console.log(dataToReturn);
});