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

0.1.2 • Public • Published

synchronizationawaiterror

wow! this awesome!

install

npm i -D synchronizationawaiterror

or

yarn add synchronizationawaiterror

Its implementation is very simple

definition

export declare function SynchronizationAwaitError<T, B, E = Error>(
  promise: Promise<T>,
  beautifyTeturnValue?: (res: T) => B,
  errorCaptured?: object
): Promise<[E, null] | [null, T | B]>;

use

The return value of the first parameter will be the second value of the array you return

const [err, val] = SynchronizationAwaitError(Promise.resolve(1));

console.log(err, val); // null 1

The second parameter is the same as his name to help you beautify your return value

import { SynchronizationAwaitError } from "synchronizationawaiterror";
interface Service {
  res: string;
}
interface replaceType {
  res: number;
}
interface ErrorInterface {
  errorText: string;
}
(async function () {
  const [err, val] = await SynchronizationAwaitError<
    Service,
    replaceType,
    ErrorInterface
  >(
    // here!
    Promise.resolve({ res: "1" }),
    (result: Service) => {
      const replace = Object.assign(result, { res: parseInt(result.res) });
      return replace;
    },
    { errorText: "hava a error!" }
  );
  console.log(err, val); // null 1 => number
})();

The third parameter determines your error return value

import { SynchronizationAwaitError } from "synchronizationawaiterror";
interface Service {
  res: string;
}
interface replaceType {
  res: number;
}
interface ErrorInterface {
  errorText: string;
}
(async function () {
  const [err, val] = await SynchronizationAwaitError<
    Service,
    replaceType,
    ErrorInterface
  >(
    // Pay attention here!
    Promise.reject({ err: "hiahia!" }),
    (result: Service) => {
      const replace = Object.assign(result, { res: parseInt(result.res) });
      return replace;
    },
    { errorText: "hava a error!" }
  );
  console.log(err, val); // { errorText: "hava a error!" , err: "hiahia!"  }
})();

Remember it synchronizationawaiterror!

Dependencies (1)

Dev Dependencies (0)

    Package Sidebar

    Install

    npm i synchronizationawaiterror

    Weekly Downloads

    2

    Version

    0.1.2

    License

    MIT

    Unpacked Size

    16.7 kB

    Total Files

    11

    Last publish

    Collaborators

    • hooks_28