promise 笔记

拒绝

var promise=new Promise(function(resolve,reject){

            throw new Error(0);

        });

        promise.then(function(arg){

            console.log(arg);

        }).catch(function(arg){

            console.log('c' + arg);//走这

        });

var promise=new Promise(function(resolve,reject){

            reject(0);

        });

        promise.then(function(arg){

            console.log(arg);

        },function(arg){

            console.log('j' + arg);//走这

        }).catch(function(arg){

            console.log('c' + arg);

异常

var promise=new Promise(function(resolve,reject){

            throw new Error(0);

        });

        promise.then(function(arg){

            console.log(arg);

        }).catch(function(arg){

            console.log('c' + arg);//走这

        });

var promise=new Promise(function(resolve,reject){

            reject(0);

        });

        promise.then(function(arg){

            console.log(arg);

        },function(arg){

            console.log('j' + arg);//走这

        }).catch(function(arg){

            console.log('c' + arg);

then() cath()会构建和返回一个promise实例

var promise=new Promise(function(resolve,reject){

            throw new Error('x');

        });

        promise.then(function(arg){

            console.log(arg);

            return 'xx';//返回给下一个thenresolve(抛异常也是下一个thenresolve

        },function(arg){

            console.log('reject' + arg);

            return 'xx';//返回给下一个thenreject

        }).catch(function(arg){

            console.log('cathc' + arg);

        })

        .then(function(data){

            console.log('last resolve:' + data);

        },function(data){

            console.log('last reject:' + data);

        });

延迟,异步异常

var promise = new Promise(function(resolve, reject) {

            setTimeout(function() {

                reject('x');//可以捕获,如果是 throw 一个error就无法捕获

            });

        });

        promise.then(function(arg) {

                console.log('resole:' + arg);

            }, function(arg) {

                console.log('reject' + arg);

            })

            .catch(function(arg) {

                console.log('cathc:' + arg);

            })

补充:

window.addEventListener("unhandledrejection", function (event) {

  console.warn("WARNING: Unhandled promise rejection. Shame on you! Reason: "

               + event.reason);});

用来捕获拒绝,window.onerror只是捕获异常不会捕获promise的拒绝

转载于:https://www.cnblogs.com/c-o-d-e/p/6642412.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值