假如我需要通过token获取用户信息,有这样一个函数:
function getUserInfo(token, onSuccess, onFail) {}
那么如果token失效,我就需要先重新获取token,然后重新获取用户函数,很可能要这么:
getUserInfo(token, onSuccess, onFail(err) {
// if token fails
getNewToken(onSuccess(tkn) {
getUserInfo(tkn, onSuccess, onF);
});
});
但是这样写,如果重新获取token失败,或者需要限制重新获取token的次数等,代码就会很乱很难组织,请问有没有更好的写法呢?了解过一点promise,但是不知道如何运用到这样的场景。
promise模式的实现,我目前是这么做的:
补充说明:如果你处于并发环境,count不能作为外部变量存在,只能放在上下文中,以免错误计数。