Skip to main content

Не все хранилища должны быть доступны для записи своим подписчикам. Например, у вас может быть хранилище, содержащее положение мыши или геолокацию пользователя, которые не нужно записывать 'снаружи'. Для таких случаев существуют readable хранилища, доступные только для чтения.

Нажмите на вкладку stores.js. Первый аргумент readable — начальное значение, которому можно задать null или undefined, если на данный момент значение ещё неизвестно. Второй — это функция start, которая принимает callback-функцию set и возвращает функцию stop. Функция start вызывается, когда у хранилища появляется первый подписчик; stop вызывается, когда отписывается последний подписчик.

export const time = readable(new Date(), function start(set) {
	const interval = setInterval(() => {
		set(new Date());
	}, 1000);

	return function stop() {
		clearInterval(interval);
	};
});