zoukankan      html  css  js  c++  java
  • promise API

       1.promise构造函数:promise(excutor){}
          excutor函数:同步执行(resolve,reject) => {}
          resolve函数:内部定义成功时我们调用的函数 value => {}
          reject函数:内部定义失败时我们调用的函数reason => {}
          特别说明:excutor会在promise内部立即同步回调,异步操作在执行器中执行

        2.promise.prototype.then方法(onResolved,onRejected) => {}
          onResolved函数:成功的回调函数(vale) => {}
          onRejected函数:失败的回调函数(reason) => {}
          说明:指定用于得到成功value的成功回调和用于得到失败reason的是失败回调
              返回一个新的promise对象

        3.promise.prototype.catch方法:(onRejected) => {}
          onRejected函数:失败的回调函数(reason) => {}
          说明:then()的语法糖,相当于then(undefined,onRejected)

        4.Promise.resolve方法:(vale) => {}
          value:成功的数据或promise对象
          说明:返回一个成功/失败的promise对象

        5. Promise.reject方法(reason) => {}
            reason:失败的原因
            说明:返回一个失败的promise对象

        6. Promise.all方法: (promises) => {}
            promises: 包含n个promise的数组
            说明: 返回一个新的promise, 只有所有的promise都成功才成功

        7. Promise.race方法: (promises) => {}
            promises: 包含n个promise的数组
            说明: 返回一个新的promise, 第一个完成的promise的结果状态就是最终的结果状态(并非是数组中的第一个,而是第一个完成的promise)
        new Promise((resolve, reject) => {
          setTimeout(() => {
            // 这两个方法只能执行一个,因为只能改变一次状态
            resolve('成功的数据') //resolve就像是一个传递数据的运输机
            reject('失败的数据') 
          }, 1000)
        })
          .then(
            value => {
              console.log('onResolved()1', value)
            }
          )
          .catch(
            reason => {
              console.log('onRejected()1', reason)
            }
          )
    
    
    
        const p1 = new Promise((resolve, reject) => {
          resolve(1)
        })
        const p2 = Promise.resolve(2)
        const p3 = Promise.reject(3)
        // p1.then( value => {console.log(value)} )
        // p2.then( value => {console.log(value)} )
        // p3.catch( reason => {console.log(reason)} )
    
        //const pAll = Promise.all([p1,p2,p3])
        const pAll = Promise.all([p1, p2])
        pAll.then(
          values => {
            console.log('all onResolved()', values)
          },
          reason => {
            console.log('all onRejected()', reason)
          }
        )
    
    
        const pRace = Promise.race([p1, p2, p3])
        pRace.then(
          value => {
            console.log('race onResolved()', value)
          },
          reason => {
            console.log('race onResolved()', reason)
          }
        )
  • 相关阅读:
    python利用ffmpeg工具将视频帧推流至rtsp
    高斯曲线拟合
    Fast角点检测
    Harris角点检测和ShiTomasi角点检测
    python赋值,浅拷贝,深拷贝
    自适应阈值二值化
    Queue模块
    threading模块
    pycharm2020.3.3安装使用教程(2021.5.2更新)
    值得推荐的C/C++框架和库
  • 原文地址:https://www.cnblogs.com/yaya-003/p/12787021.html
Copyright © 2011-2022 走看看