dignals-async
TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

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 для более эффективной работы с асинхронным кодом и повышения производительности вашего приложения.

Package Sidebar

Install

npm i dignals-async

Weekly Downloads

0

Version

0.1.1

License

none

Unpacked Size

22.7 kB

Total Files

8

Last publish

Collaborators

  • dmitriypereverza