Javascript 如何截获承诺响应或捕获?

Javascript 如何截获承诺响应或捕获?,javascript,reactjs,ecmascript-6,promise,es6-promise,Javascript,Reactjs,Ecmascript 6,Promise,Es6 Promise,我试图截取所有承诺的回应。但我无法在原型then方法中获得响应数据。请查找下面的代码 (function(Promise) { var originalThen = Promise.prototype.then; var originalCatch = Promise.prototype.catch; Promise.prototype.then = function() { console.log(this, arguments); return or

我试图截取所有承诺的回应。但我无法在原型then方法中获得响应数据。请查找下面的代码

(function(Promise) {
   var originalThen = Promise.prototype.then;
   var originalCatch = Promise.prototype.catch;
   Promise.prototype.then = function() {
      console.log(this, arguments);
      return originalThen.apply(this, arguments);
   };
   Promise.prototype.catch = function() {
      return originalCatch.apply(this, arguments);
   };
})(this.Promise)
在上面的代码中,我可以看到控制台打印在所有Promise调用中。但是我无法在then中获得响应对象

控制台中打印的“this”对象值:

then原型方法中打印的参数:

请建议我在then方法中获取所有承诺方法的响应对象

我试图使用“arguments[0].arguments”(then回调中的响应对象)获取该值,但它抛出了以下错误

未捕获的TypeError:“调用方”和“参数”是受限函数 属性,无法在此上下文中访问

请向我建议拦截响应对象的解决方案

提前感谢。

then()
在使用承诺添加回调时,在承诺实际具有值之前被调用。
它的参数是成功和错误回调


要查看承诺的值,您需要实际调用
then()
,并传递回调以查看其最终值。(或者包装传递给您的回调,并将包装传递给真实的
then()

then
是一种同步方法,用于注册成功和失败回调。它立即返回

要截取未来值,请插入您自己来代替成功回调:

(功能(承诺){
var originalThen=Promise.prototype.then;
Promise.prototype.then=函数(oncompleted,onFailure){
return originalThen.call(此函数,函数(值){
console.log(值);
完成后的回报(价值);
}(失败时);
};
})(这是承诺);

Promise.resolve(3).然后(()=>console.log(“完成”)