这个对象在诺言中

时间:2016-10-17 08:54:53

标签: javascript node.js ecmascript-6

我认为有类似的问题,但并没有完全回答我的想法。

ECMA-262 25.4.5.1的规范中,它声明:

  

使用参数 onRejected 调用 catch 方法时,将执行以下步骤:

     
      
  1. 承诺是
  2.   

这是否意味着在承诺的catch方法中,应该解析为承诺?

如果我这样做:

Promise.reject(1).catch(function (res) {console.log(this)})

在chrome和Node 4中记录全局对象

1 个答案:

答案 0 :(得分:3)

不,这不是它的意思。

  

使用参数 onRejected 调用 function showModalBoxForInvalidSessionInfo(){ $("#modelView").dialog({ autoOpen : false, modal : true, buttons : [ { text : "OK", icons : { primary : "ui-icon-heart" }, click : function() { $(this).dialog("close"); window.close(); } }] }); $("#modelView" ).dialog("open"); $("#modelView").text("Logout Succesfully"); } 方法时,将采取以下步骤:

     
      
  1. 承诺值。
  2.   
  3. 回来?调用(承诺,然后“,”未定义 onRejected »)。
  4.   

这只是声明catch的定义,即:

promise.catch

所以调用Promise.prototype.catch = function(onRejected) { // Let promise be the this value. var promise = this; // Return ? Invoke(promise, "then", « undefined, onRejected »). return promise.then(undefined, onRejected); } 等同于调用
promise.catch(onRejected)