Создал StackBlitz в котором можно с ним поиграться.
Если вкратце, то он берет сигнал с
HTTP ссылкой:readonly catId = signal()
readonly cats = httpResource<Array<Cat>>(
() => `https://cataas.com/cat/${this.catId()}`
);
Згружает данные и предоставляет статус, значение (сначала undefined) и всякие другие полезные штуки
cat.isLoading()
cat.hasData() // Сужает тип
cat.value() // Значение, изначально undefined, потом кот
При изменении зависимостей,
catId.set('3'), ресурс автоматически перезапустится, и обновит данные, также можно сделать это и вручную (cats.reload()).Под капотом используется HttpClient, так что все интерсепторы должны работать.
Пока может быть использован только для чтения.
Из приятного, по умолчанию автоматически использует JSON и возвращает распаршеный результат. Но можно использовать
httpResource.text(/**/), httpResource.blob или httpResource.arrayBuffer