码迷,mamicode.com
首页 > 其他好文 > 详细

promise 笔记

时间:2017-03-30 00:17:35      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:row   window   补充   reason   event   return   eject   hand   listen   

拒绝

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的拒绝

promise 笔记

标签:row   window   补充   reason   event   return   eject   hand   listen   

原文地址:http://www.cnblogs.com/c-o-d-e/p/6642412.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!