• Promise学习(四)


    1.Promise.any(一个可迭代的对象, 例如Array。)

    Promise.any()接收一个Promise可迭代对象,只要其中的一个Promise成功,就返回那个已经成功的 Promise。如果可迭代对象中没有一个 Promise成功(即所有的 Promise都失败/拒绝),

    就返回一个失败的 Promise和AggregateError类型的实例,它是 Error的一个子类,用于把单一的错误集合在一起。本质上,这个方法和Promise.all()是相反的。(处于草案,不适用)

    2.Promise.prototype.catch(当Promise 被rejected时,被调用的一个function。 该函数拥有一个参数:)

    catch()方法返回一个Promise,并且处理拒绝的情况。它的行为与调用Promise.prototype.then() 相同。 (事实上, calling obj.catch(onRejected) 内部calls obj.then(undefined, onRejected)).

     如果 onRejected 抛出一个错误或返回一个本身失败的 Promise ,  通过 catch() 返回的Promise 被rejected;否则,它将显示为成功(resolved)。 

    返回值是一个Promise.

    示例:代码如下

    var p1 = new Promise(function(resolve, reject) {
      resolve('Success');
    });
    
    p1.then(function(value) {
      console.log(value); // "Success!"
      throw 'oh, no!';
    }).catch(function(e) {
      console.log(e); // "oh, no!"
    }).then(function(){
      console.log('after a catch the chain is restored');
    }, function () {
      console.log('Not fired due to the catch');
    });
    

    图:

      抛出一个错误,大多数时候将调用catch方法

    在异步函数中抛出的错误不会被catch捕获到
    在resolve()后面抛出的错误会被忽略
    // 抛出一个错误,大多数时候将调用catch方法
    var p1 = new Promise(function(resolve, reject) {
      throw 'Uh-oh!';
    });
    
    p1.catch(function(e) {
      console.log(e); // "Uh-oh!"
    });
    
    // 在异步函数中抛出的错误不会被catch捕获到
    var p2 = new Promise(function(resolve, reject) {
      setTimeout(function() {
        throw 'Uncaught Exception!';
      }, 1000);
    });
    
    p2.catch(function(e) {
      console.log(e); // 不会执行
    });
    
    // 在resolve()后面抛出的错误会被忽略
    var p3 = new Promise(function(resolve, reject) {
      resolve();
      throw 'Silenced Exception!';
    });
    
    p3.catch(function(e) {
       console.log(e); // 不会执行
    });
    

      

     
     
  • 相关阅读:
    jQuery EasyUI介绍
    CodeMirror:基于JavaScript的代码编辑器
    概述:分布式文件系统+分布式存储+分布式处理
    HTML学习笔记——标准网页设计+使用CSS、Javascript
    HTML学习笔记——常用元素及其属性(二)
    HTML学习笔记——常用元素及其属性(一)
    Remmarguts' Date(k短路问题)
    K短路问题模板(spfa+A*)
    树状数组求逆序对模板
    桐桐的糖果计划(tarjan求桥+双连通分量)
  • 原文地址:https://www.cnblogs.com/baisong11/p/13748484.html
Copyright © 2020-2023  润新知