Promise的使用记录

简介: Promise 是抽象异步处理对象以及对其进行各种操作的组件.

Promise是什么?

Promise 是抽象异步处理对象以及对其进行各种操作的组件.

为什么使用promise?

  • 解决地狱回调

    function load() {
    $.ajax({
        url: 'xxx.com',
        data: 'jsonp',
        success: function(res) {
            init(res, function(res) {
                render(res, function(res) {
                    // 反复的嵌套下去
                });
            });
        }
    }

    }

    load();

promise怎么用

  • promise是Es2016中提供的 原生对象,所以使用也比较简单.

        // 直接 new 一下就可以 
      let load = new promise((resovle,reject)=> {
        /*
            promise 是构造函数需要一个函数作为参数,该函数的两个参数别是resovle和reject.  它们是两个函数,由 JavaScript 引擎提供,不用自己部署。
        */
        setTimeout(resolve, 1000);
      })
      load.then(() => {
         console.log("Hello"); // 1秒后输出"Hello"
         return wait1000;
      }).then(() => {
         console.log("World"); // 2秒后输出"World"
      });
  • ajax如何用呢?

    let load = new promise((resovle, reject)=> {
      let xhr = new XMLHttpRequest();
      xhr.open('get', url, true)
      xhr.onreadystatechange = function(){   
         if(this.status == 200 && this.readyState == 4){
              return resovle(this.response)       
         }else {
           return reject(this.statusText)
         }      
      }
      xhr.send(form)
    })
    
    load().then( res=> {
      console.log("Hello");
      return load;
    }).then( res => {
      console.log("World");
    })
相关文章
|
1月前
在 onerror 事件处理函数中获取错误对象的详细信息
【10月更文挑战第26天】可以在 `onerror` 事件处理函数中全面地获取错误对象的详细信息,从而更有效地进行错误诊断、调试和处理,提高WebSocket应用的稳定性和可靠性。需要注意的是,不同浏览器对错误对象的具体实现和属性支持可能会略有不同,在实际应用中可能需要根据目标浏览器的特性进行适当的兼容性处理。
|
3月前
|
前端开发 JavaScript
解决异步问题,教你如何写出优雅的promise和async/await,告别callback回调地狱!
该文章教授了如何使用Promise和async/await来解决异步编程问题,从而避免回调地狱,使代码更加清晰和易于管理。
解决异步问题,教你如何写出优雅的promise和async/await,告别callback回调地狱!
|
7月前
|
消息中间件 前端开发 JavaScript
Promise:使用Promise,告别回调函数
Promise:使用Promise,告别回调函数
79 1
Promise:使用Promise,告别回调函数
|
前端开发
用Promise模拟下单操作的流程
用Promise模拟下单操作的流程
|
小程序 安全 数据库
小程序里使用async和await变异步为同步,解决回调地狱问题
小程序里使用async和await变异步为同步,解决回调地狱问题
191 0
|
前端开发 小程序 Java
小程序不同页面的异步回调,callback和promise的使用讲解
小程序不同页面的异步回调,callback和promise的使用讲解
207 0
|
前端开发 API
常用!提前 reject promise 的 2 种场景,收藏等于学会
常用!提前 reject promise 的 2 种场景,收藏等于学会
|
移动开发 前端开发 API
如何更好的取消一个promise?
一个正在执行中的promise怎样被取消? 其实就像一个执行中的ajax要被取消一样,ajax有abort()进行取消,而且fetch api 也有了相关的规范-【AbortController】。
707 0
如何更好的取消一个promise?
|
小程序
【微信小程序】页面返回且带回数据
【微信小程序】页面返回且带回数据
520 0
|
前端开发
使用Promise过程中resolve或reject后,后面代码还会执行
在日常开发中会用到Promise语法,里面有resolve和reject
2517 0