zoukankan      html  css  js  c++  java
  • 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的拒绝

  • 相关阅读:
    C语言之基本算法24—黄金切割法求方程近似根
    windows下PHP不能开启pgsql扩展的解决方法
    Linux 文件基本属性
    Android倒计时功能的实现
    hdu2444The Accomodation of Students (最大匹配+推断是否为二分图)
    Asp.net core使用IIS在windows上进行托管
    [Asp.net]web.config customErrors 如何设置?
    [Asp.net mvc]Html.ValidationSummary(bool)
    [C#基础]说说lock到底锁谁?(补充与修改)
    [web.config]如何灵活使用配置文件
  • 原文地址:https://www.cnblogs.com/c-o-d-e/p/6642412.html
Copyright © 2011-2022 走看看