【发布时间】:2021-02-08 21:35:03
【问题描述】:
考虑一下:
class ConnectUser {
connect = () => {
axios.get('URL').catch(err => {
// CAN I CALL `connect` METHOD AGAIN?!
// this.connect();
});
}
}
我的代码有一个方法,可以连接或拒绝连接某些资源。如果发生异常,我可以再次调用它来争取连接吗?
【问题讨论】:
-
@David784 实际上恰恰相反。箭头函数将始终将实例作为
this值,而普通方法(应该写为connect() {…},而不是connect = function() {…})只有在实例上调用时才具有正确的this值 -
不要忘记
return来自catch回调的递归调用结果,以正确使用承诺链!并且始终将您的尝试限制为最大重试次数,并添加指数退避。 -
@David784 你错了,大卫。正如 Bergi 所说,箭头函数总是有实例。
标签: javascript node.js ecma