Начальный набор значений происходит на сервере (\ complex \ server \ index.js):
app.post('/values', async (req, res) => {
const index = req.body.index;
if (parseInt(index) > 40) {
return res.status(422).send('Index too high');
}
redisClient.hset('values', index, 'Nothing yet!');
redisPublisher.publish('insert', index);
pgClient.query('INSERT INTO values(number) VALUES($1)', [index]);
res.send({ working: true });
});
При отправке значения в компоненте (\ complex \ client \ src \ Fib.js):
handleSubmit = async (event) => {
event.preventDefault();
await axios.post('/api/values', {
index: this.state.index
});
this.setState({ index: '' });
};
работник устанавливает значение для клиента Redis:
sub.on('message', (channel, message) => {
redisClient.hset('values', message, fib(parseInt(message)));
});
sub.subscribe('insert');
Однако, когда список всех значений в компоненте Fib.js для каждого представленного индекса, компонент получает «Ничего»пока! '.
Почему бы ему не получить рассчитанные значения?Полное репо на https://github.com/ElAnonimo/docker-complex