У меня есть список слов с данными произношения в текстовом файле. Я хотел бы сделать, чтобы пользователь вводил слово, а затем проверил программу, чтобы узнать, есть ли у меня данные на этом слове в этом файле. Я бы хотел сделать это в RxJs, для чего я новичок.RxJs Basing a Filter on Another Observable
Код, приведенный ниже, ближе всего подходит для того, что я хочу. В моем основном потоке у меня есть вызов фильтра, который создает зависимый поток, называемый «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);
});