Javascript 如何截获承诺响应或捕获?
我试图截取所有承诺的回应。但我无法在原型then方法中获得响应数据。请查找下面的代码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
(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(“完成”)你愿意详细说明原因吗?