Home Web Front-end JS Tutorial Detailed introduction to Promise in es6

Detailed introduction to Promise in es6

Jun 26, 2017 pm 03:23 PM
promise

Promise

  1. Promise is an object from which messages for asynchronous operations can be obtained;

  2. Features: The state of the object is not affected by the outside world Impact (Pending in progress, Resolved completed, Rejected failed), only the result of the asynchronous operation can determine the current state; once the state changes, it will not change (only from Pending to Resolved and Pending to Rejected);

  3. Disadvantages: Once created, it will be executed immediately and cannot be canceled midway; if there is no callback function, errors thrown internally cannot be reflected externally; when it is Pending, it is impossible to know which stage the current progress is;

  4. Generally do not define the callback function of the Reject state (that is, the second parameter of then) in the then method, but use the catch method; because this can capture the errors in the previous then, and also Closer to synchronous writing (try/catch)

  5. catch method still returns a Promise object, so you can also call the then method later; in the catch method, It can also throw an error

  6. The Promise.all method is used to package multiple Promise instances into a new Promise instance; the parameters of the Promise.all method can not be arrays, but must It has an Iterator interface, and each returned member is a Promise instance; only when the states of p1, p2, and p3 become fulfilled, the p state will become fulfilled; as long as there is one rejected, p will become rejected;

  7. Promise.race also wraps multiple Promise instances into new Promise; as long as the state of one object changes, the state of p will change accordingly, and the value of the first changed object will be returned and passed to p's callback function;

  8. Promise.resolve converts the object into a Promise object, and the status is resolved

    // 将thenable对象转为Promise对象var thenable = {
        then(resolve, reject) {
            resolve(200)
        }
    }var p = Promise.resolve(thenable)
    
    p.then((data) => {
      console.log(data)
    })  // 200
    Copy after login
  9. Promise.reject Returns a Promise object, and the instance status is rejected; the parameters of this method will remain unchanged as the reason for rejection and become the parameters of subsequent methods.

  10. Two additional methods

    // donePromise.prototype.done = function(onFulfilled, onRejected) {this.then(onFulfilled, onRejected)
            .catch(function(reason) {
                setTimeout(() => {throw reason}, 0)   
            });
    };// finallyPromise.prototype.finally = function (callback) {
        let P = this.constructor;return this.then(
            value  => P.resolve(callback()).then(() => value),
            reason => P.resolve(callback()).then(() => { throw reason })
        );
    };
    Copy after login

    done is used to capture errors that may occur at any time and throw them globally;
    finally is used for operations that will be executed regardless of the state of the Promise object. It accepts a common callback function as a parameter (must be executed);

The above is the detailed content of Detailed introduction to Promise in es6. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Keeping your word: The pros and cons of delivering on your promises Keeping your word: The pros and cons of delivering on your promises Feb 18, 2024 pm 08:06 PM

In daily life, we often encounter problems between promises and fulfillment. Whether in a personal relationship or a business transaction, delivering on promises is key to building trust. However, the pros and cons of commitment are often controversial. This article will explore the pros and cons of commitments and give some advice on how to keep your word. The promised benefits are obvious. First, commitment builds trust. When a person keeps his word, he makes others believe that he is a trustworthy person. Trust is the bond established between people, which can make people more

What should I do if I encounter Uncaught (in promise) TypeError in a Vue application? What should I do if I encounter Uncaught (in promise) TypeError in a Vue application? Jun 25, 2023 pm 06:39 PM

Vue is a popular front-end framework, and you often encounter various errors and problems when developing applications. Among them, Uncaught(inpromise)TypeError is a common error type. In this article, we will discuss its causes and solutions. What is Uncaught(inpromise)TypeError? Uncaught(inpromise)TypeError error usually appears in

Learn more about Promise.resolve() Learn more about Promise.resolve() Feb 18, 2024 pm 07:13 PM

Detailed explanation of Promise.resolve() requires specific code examples. Promise is a mechanism in JavaScript for handling asynchronous operations. In actual development, it is often necessary to handle some asynchronous tasks that need to be executed in sequence, and the Promise.resolve() method is used to return a Promise object that has been fulfilled. Promise.resolve() is a static method of the Promise class, which accepts a

Example analysis of the principle and use of ES6 Promise Example analysis of the principle and use of ES6 Promise Aug 09, 2022 pm 03:49 PM

Use Promise objects to change ordinary functions to return Promise to solve the problem of callback hell. Understand the success and failure calling logic of Promise and make adjustments flexibly. Understand the core knowledge, use it first, and slowly integrate and absorb the knowledge.

Which browsers support Promise? Which browsers support Promise? Feb 19, 2024 pm 04:41 PM

Browser compatibility: Which browsers support Promises? As the complexity of web applications continues to increase, developers are eager to solve the problem of asynchronous programming in JavaScript. In the past, developers often used callback functions to handle asynchronous operations, but this resulted in code that was complex and difficult to maintain. To solve this problem, ECMAScript6 introduced Promise, which provides a more intuitive and flexible way to handle asynchronous operations. Promise is a method used to handle exceptions

What are promise objects? What are promise objects? Nov 01, 2023 am 10:05 AM

The promise object states are: 1. pending: initial state, neither success nor failure state; 2. fulfilled: means the operation was successfully completed; 3. rejected: means the operation failed. Once a Promise object is completed, it will change from the pending state to the fulfilled or rejected state, and cannot change again. Promise objects are widely used in JavaScript to handle asynchronous operations such as AJAX requests and timed operations.

What does promise mean? What does promise mean? Nov 02, 2023 pm 05:30 PM

Promise is a programming pattern for handling asynchronous operations. It is an object that represents the final completion or failure of an asynchronous operation. It can be seen as a commitment to asynchronous operations. It can better manage and organize asynchronous code. , making the code more readable and maintainable. Promise objects have three states: pending, fulfilled and rejected. The core idea of ​​Promise is to separate asynchronous operations from callback functions and express the dependencies between asynchronous operations through chain calls.

What are the advantages of PHP functions returning Promise objects? What are the advantages of PHP functions returning Promise objects? Apr 19, 2024 pm 05:03 PM

Advantages: asynchronous and non-blocking, does not block the main thread; improves code readability and maintainability; built-in error handling mechanism.

See all articles