美文网首页
promise初识及使用

promise初识及使用

作者: 公子白521 | 来源:发表于2019-10-11 08:00 被阅读0次

    Promise 是异步编程的一种解决方案,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。

    promise的语法细节

    ES6 规定,Promise对象是一个构造函数,用来生成Promise实例

    * 1. Promise接收的是一个函数(回调函数)

    * 2. 回调函数由两个参数,这个参数(reslove,reject)分别都是函数

    * 3. new Promise生成的是一个Promise实例,该实例拥有then方法

    * 4. then方法接收两个函数,第一个函数跟reslove相关,第二个函数和reject相关,reslove执行就会触发then里的第一个函数执行,并且会把reslove接收的参数传递给then里的第一个函数

    * 5. reslove和reject只有一个会执行

    * 6. Promise有三种状态 pending(执行中)/resloved(异步代码成功执行)/rejected(异步代码执行失败)

    ```js

    let p = new Promise((reslove, reject) => {

        setTimeout(() => {

            reject('hello');

        }, 2000);

    });

    p.then((data) => {

        console.log(data);

    }, (data) => {

        console.log('data', data);

    })

    ```

    如何应用promise:

    在promise的回调里,书写异步代码,在异步成功的时候去调用reslove,在异步失败的时候去调用reject;

    promise主要用来解决异步的问题-- 链式调用

    - 方便代码的组织

    - 避免回调地狱

    Promise类的静态方法  all() race()

    - Promise.all接受的参数是数组,数组中的promise对象都resloved,Promise.all返回的新promise才会是resloved状态的,只要数组中有一个promise对象是rejected状态,

    - Promise.all 适用的场景是多个异步条件需要同时满足才执行后续操作的情况。

    - Promise.race()接受的参数也是个数组,数组中的promise对象存在竞争关系,比如同时向两个不同接口拿相同数据,哪个接口先返回数据,就先使用该数据做后续操作

    相关文章

      网友评论

          本文标题:promise初识及使用

          本文链接:https://www.haomeiwen.com/subject/tcgzpctx.html