dignals-async
v0.1.1
Published
Dignals-async - это библиотека для работы с асинхронными операциями в реактивном стиле. Она предоставляет удобные функции для создания и отслеживания асинхронных операций в реактивной системе.
Downloads
1
Maintainers
Readme
Dignals-async
Dignals-async - это библиотека для работы с асинхронными операциями в реактивном стиле. Она предоставляет удобные функции для создания и отслеживания асинхронных операций в реактивной системе.
Установка
Для установки dignals-async выполните следующие команды:
npm install dignals-async
Использование
import { effect } from "dignals";
import { createReactivePromise } from "dignals-async";
function wait(time, endWithError = false) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (endWithError) {
reject("Wait error");
return;
}
resolve(null);
}, time);
});
}
const case$ = createReactivePromise(() => wait, "TestWait");
effect(() => {
console.log("Loading:", case$.loading);
console.log("Done:", case$.done);
console.log("Success:", case$.success);
console.log("Error:", case$.error);
console.log("Result:", case$.result);
});
case$.run(100);
API
createReactivePromise
Функция createReactivePromise
используется для создания реактивной операции, которая представляет собой асинхронную функцию. Она принимает асинхронную функцию и название операции.
const case$ = createReactivePromise(asyncFn, name);
Свойства реактивной операции
У реактивной операции есть следующие свойства:
loading
: флаг, указывающий на текущий статус выполнения операции.done
: флаг, указывающий, завершена ли операция.success
: флаг, указывающий, успешно ли завершена операция.error
: ошибка, возникшая при выполнении операции.result
: результат выполнения операции.
Методы реактивной операции
Реактивная операция имеет следующие методы:
run
: метод, который запускает выполнение операции. Принимает аргументы, которые передаются асинхронной функции.reset
: метод, который отменяет выполнение операции и сбрасывает ее состояние.
Ограничения
Не добавляйте обработку ошибок fetch(...).catch(e => {})
, в данном случае ReactivePromise не сможет корректно обработать ошибку и записать ее в сигнал. Также это могут ошибки отмены промиса с помощью AbortController.
const case$ = createReactivePromise(() =>
(someId) =>
fetch(someId).catch(e => {}), // don't do this!
"ExamplePromise"
);
Заключение
Dignals-async - это удобная библиотека для работы с асинхронными операциями в реактивной системе. Она позволяет легко создавать и отслеживать асинхронные операции, обновлять состояние и результаты выполнения операций в реактивной системе. Используйте dignals-async для более эффективной работы с асинхронным кодом и повышения производительности вашего приложения.