zoukankan      html  css  js  c++  java
  • Gist

    The concept of "Promise"

    Promise is used to asynchronous computations.

    Introduction

    "Synchronize asynchronous methods" is always a hot topic.Here, "Promise" is one way to achieve the goal.

    Promise Model

    Basic Promise Model

    In javascript, it's like:

    // #1 Create a "Promise" object
    const testPromise = new Promise( (resolve, reject) => {
      // resolve("parameters") or reject("parameters")
      // example 1: setTimeout(resolve, 1000, 'parameters')
      // example 2: setTimeout(reject, 1000, 'parameters')
    } )
    
    testPromise.then( value => {
        // #2 Monitor the state of "Promise", if state is "fulfilled"
    },  value => {
        // #2 Monitor the state of "Promise", if state is "rejected"
    })
    
    

    Chaining promise model

    const testPromise = new Promise( (resolve, reject) => {
      // set the state of "Promise" to "fulfilled"
      resolve()
    } )
    
    testPromise
        .then( value => {
            // Continue to create "Promise"
            return new Promise( (resolve, reject) => {
                resolve()
            } )
        }, value => {
        })
        .then( value => {
            // Continue to create "Promise"
            return new Promise( (resolve, reject) => {
            resolve('parameters')
            } )
        }, value => {
        })
        .then( value => {
            console.log(value)  // output: 'paramaters'
        }, value => {
        })
    

    Grammar

    Initialize

    Promise constructor

    Chain

    Promise.prototype.then()

    Catch rejected reason

    Promise.prototype.catch()

    Resolve or reject parameters directly

    Promise.resolve()
    Promise.reject()

    Queue

    Promise.all()

    Apply fastest promise

    Promise.race

    Conclusion

    There must be lots of ways to synchronize asynchronous methods, however, it's more convenient if a standard emerges so we can build robust program more easily.Obviously, promise is an ideal standard.

  • 相关阅读:
    Bootstrap3.0学习第八轮
    内存管理相关的信息
    SVN merge
    Asp.Net MVC 3
    formValidator
    jquery 分页控件2
    从零开始学C++之STL(四):算法简介、7种算法分类
    (Java实现) 过河卒
    (Java实现) N皇后问题
    (Java实现) N皇后问题
  • 原文地址:https://www.cnblogs.com/terrysu/p/7103083.html
Copyright © 2011-2022 走看看