$mol pulling. Советы из чата
Проблема
Как сделать polling — периодические запросы к серверу каждые N секунд?
Сам сталкивался с этой проблемой пару раз и мне отвечали примерно тоже самое. В документации такого нет, буду пробовать сохранять в таких заметках.
Решение
@$mol_mem
value() {
this.$.$mol_state_time.now(1000)
return this.$.$mol_wire_sync(this).get_value_async()
}
$mol_state_time.now(1000) создаёт зависимость от времени. Каждую секунду значение пересчитывается и вызывается get_value_async().
Как сохранить предыдущее значение во время загрузки
Пока идёт запрос, показываем старые данные вместо спиннера:
@$mol_mem
value() {
return $mol_error_fence(
() => {
this.$.$mol_state_time.now(1000)
return this.$.$mol_wire_sync(this).get_value_async()
},
(error) => {
throw error
},
() => {
return this.$.$mol_wire_probe(() => this.value())
},
)
}
$mol_error_fence перехватывает Promise и возвращает результат $mol_wire_probe — предыдущее закешированное значение.