我想在Javascript中创建一个对象.
其中一个方法应该执行一个promise链.链中的每个方法都必须访问作为对象成员的配置变量.问题是,this
操作员已更改PromiseMethod2
,我无法访问配置变量(它正常工作PromiseMethod1
).
这是我的代码:
var SomeObject(config) { var that = this; that.config = config; } SomeObject.prototype.SomeMethod = function() { var that = this; that.PromiseMethod1() .then(that.PromiseMethod2) .catch(console.error); } SomeObject.prototype.PromiseMethod1 = function() { var that = this; config = that.config; return SomePromise(); } SomeObject.prototype.PromiseMethod2 = function(someParams) { var that = this; config = that.config; params = someParams; return SomePromise(); } var someObject = new SomeObject(someConfig); someObject.SomeMethod().then(function () { console.log('Done!'); }
我想在链中使用方法委托而不是仅执行:
that.PromiseMethod1().then(function(response) { return that.PromiseMethod2(that, response); };
我无法使用该bind
方法,因为它在执行回调时看起来像被重新绑定.
这个问题有方法解决吗?为什么PromiseMethod1
和之间存在差异PromiseMethod2
?