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诞生了 * promise是什么? * 承若,许诺---用于异步计算,可以将异步操作...
    我需要一瓶脉动阅读 190评论 0 0
  • 异步回调的问题 层次嵌套很深,难以维护 无法正常的使用return和throw 无法正常的检索堆栈信息 (每次回调...
    黎贝卡beka阅读 565评论 0 1
  • 本文转载至https://www.jianshu.com/p/1b63a13c2701 promise是什么? 1...
    莫名其妙的名字阅读 121评论 0 0
  • Promise 对象用于异步计算. 一个Promise表示一个现在、将来或永不可能可用的值. 按照用途来解释 1....
    梦想终会实现阅读 732评论 0 1
  • promise是什么? 1、主要用于异步计算 2、可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果 3...
    师妹不叫思妹阅读 801评论 0 0