zoukankan      html  css  js  c++  java
  • promise使用

    1.什么是promise?

      1.主要用于异步计算。

      2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果。

      3.可以再对象之间传递和操作promise,处理队列。

    2.promise的作用

      为了避免页面冻结,不执行操作,可以异步操作,一时间可以执行多个事件!

    • 回调地狱,代码难以维护, 常常第一个的函数的输出是第二个函数的输入这种现象
    • promise可以支持多个并发的请求,获取并发请求中的数据
    • 这个promise可以解决异步的问题,本身不能说promise是异步的

    3.Promise的创建。

    • 初始状态( pending )。
    • 已完成( fulfilled ): Promise 的异步操作已结束成功。
    • 已拒绝( rejected ): Promise 的异步操作未成功结束。

    resolve 方法可以使 Promise 对象的状态改变成成功,同时传递一个参数用于后续成功后的操作。
    reject 方法则是将 Promise 对象的状态改变为失败,同时将错误的信息传递到后续错误处理的操作。

    // Promise实例的创建
    let p = new Promise((resolve, reject) => {
      // TODO
    })

    但是这里有个缺陷,一旦被创建就会立即被执行,所以用药函数包裹起来。

    let getPromise = () => {
      return new Promise((resolve, reject) => {
        // TODO  
        // 处理结果
        if (result) {
          resolve(successObject)
        } 
        else {
          reject(error)
        }
      })
    }

    常用方法:

      常用的方法就是then()和catch()这两个方法,通过then()的传递可以解决回调的问题。

      then可以接受两个参数,都是回调函数,第一个回调函数用来处理resolved状态,参数为Promise实例调用resolve传递的成功对象。第二回调函数用来处理rejected状态,参数为调用Promise实例调用reject传递的错误对象。

    let getPromise = () => {
      return new Promise((resolve, reject) => { 
        // 处理结果
        if (result) {
          resolve(successObject)
        } 
        else {
          reject(error)
        }
      })
    }
    
    getPromise().then(res => { // 调用方法
        console.log(res)
      })
      .catch(err => {
        //错误执行时
      })

      也可以用then()继续返回一个promise对象,通过return一个新的promise,继续执行函数。

    getPromise().then(res => {    //第一层Promise
        console.log(res)
        return getPromise()
        )
      .then(res => {    // 第二层Promise
        console.log(res)
      })
      .catch(err => {
        // 错误执行
      })

      使用 catch 的写法比一般的写法更加清晰明确。我们在捕获错误的时候,直接在最后写catch函数即可。

  • 相关阅读:
    淘宝如何做智能化UI测试?
    摸爬滚打16年的软件测试经验,建议收藏!
    QA如何高效参与技术设计评审
    官宣!新冠疫苗全民免费接种,全部费用政府出!
    2021年第一次,送Python好书
    【Python】自动化抢购茅台,真香。
    3年以上测试工程师,你的出路在哪里?
    性能测试的目的与类型
    Burpsuite的简单应用-y-Proxy
    用Burpsuite破解网站密码
  • 原文地址:https://www.cnblogs.com/0314dxj/p/11942637.html
Copyright © 2011-2022 走看看