Giter VIP home page Giter VIP logo

fg-promise's Introduction

Что это?

Обёртка для промиса.

Установка

npm i fg-promise

Инициализация и использование

const fgPromise = require('fg-promise');

let promise = new fgPromise;

(async function(){
    try{
        let result = await promise;
        console.log('Промис разрешен с результатом:', result);
    }catch(error){
        console.log('Промис отклонен с ошибкой:', error);
    }
})();

setTimeout(promise.resolve.bind(promise, 42), Math.round(Math.random()*1000));
setTimeout(promise.reject.bind(promise, -42), Math.round(Math.random()*1000));

Интерфейс

promise.resolve(result)

  • result: значение, с которым должен завершиться промис.
  • Returns <boolean>:
    • true: если состояние промиса успешно изменено на 'resolved'.
    • false: если состояние промиса изменить не удалось; такое возможно, когда к моменту вызова resolve промис был не ожидающим, но завершенным.

Если состояние промиса было 'pending', то в результате выполнения данной функции оно будет изменено на 'resolved', флаги isResolved и isSettled будут установлены в true, флаг isPending - false. Также будут запущены onresolve и onsettle, если они утсановлены.

promise.reject(error)

  • error.
  • Returns <boolean>:
    • true: если состояние промиса успешно изменено на 'rejected'.
    • false: если состояние промиса изменить не удалось; такое возможно, когда к моменту вызова reject промис был не ожидающим, но завершенным.

Если состояние промиса было 'pending', то в результате выполнения данной функции оно будет изменено на 'rejected', флаги isRejected и isSettled будут установлены в true, флаг isPending - false. Также будут запущены onreject и onsettle, если они утсановлены.

Переменные

  • promise.result;
  • promise.error;
  • promise.state <string>: 'pending' | 'resolved' | 'rejected';
  • promise.isPending <boolean>;
  • promise.isResolved <boolean>;
  • promise.isRejected <boolean>;
  • promise.isSettled <boolean>.

Функции обратного вызова

promise.onresolve = (result) => { console.log('Resolved with result:', result) };

promise.onreject = (error) => { console.log('Rejected with error:', error) };

promise.onsettle = (result, error, isResolved) => {
    if(isResolved) console.log('Resolved with result:', result);
    else console.log('Rejected with error:', error);
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.