Promise的基本语法

promise

Promise是什么?

Promise用来表示延迟操作也就是异步操作的结果

Promise 对象代表了未来将要发生的事件,用来传递异步操作的消息
Promise主要用于异步计算
Promise 创建 Promise 创建

    var promise=new Promise(function(resolve,reject){
             setTimeout(function(){
        console.log('执行完成Promise');
        resolve('要返回的数据可以任何数据例如接口返回数据');
    }, 2000);
    })

Promose的三个状态:

pending 是 初始状态
fulfilled 是 操作成功的状态
rejected 是 操作失败的状态

.then()

1、接收两个函数作为参数,分别代表fulfilled(成功)和rejected(失败)
2、.then()返回一个新的Promise实例,所以它可以链式调用
(1)如果then方法中回调函数返回一个值那么then返回的Promise将会成为Resolved状态,并且将返回的值
作为Resolved状态的回调函数的参数值。
var p = new Promise(function (resolve, reject) {
resolve('fun');
});

        p.then(function () {
            return 1; // 返回一个值
        }).then(function (value) {
            console.log(value);
        }); // 1

3、当前面的Promise状态改变时,.then()根据其最终状态,选择特定的状态响应函数执行
4、状态响应函数可以返回新的promise,或其他值,不返回值也可以我们可以认为它返回了一个null;
5、如果返回新的promise,那么下一级.then()会在新的promise状态改变之后执行
6、如果返回其他任何值,则会立即执行下一级.then()
.then的情况
1、因为.then()返回的还是Promise实例
2、会等里面的then()执行完,再执行外面的

promise的基本语法

        var a = 2;
        var p = new Promise(function (resolve, reject) {
            if (a == 1) {
                resolve(1)
            } else {
                reject(2)
            }
        });
        p.then(
            function (res1) {
                console.log(res1)    // 成功resolve promise 的第一个then中的第一个函数来处理
            },
            //可以写俩个函数
            // function(res){
            //     console.log(res2);//可以捕获reject   2
            // }
        ).catch(function (error) {//必须写
            // 捕获错误
            if (error) {
                console.log(error)
            }
        }).
            then(function (er) {//第二个then是第一个then结束后的回调函数
                // 第一个then 处理结束后的回调函数
                console.log('处理完成')
            })
    // 获得reject 的结果 使用catch   then 也是可以捕获的,但是会报错

你可能感兴趣的:(Promise的基本语法)