首先,我想解释一下,我已经阅读了很多答案,而且我理解阻止线程等待响应是错误的。但我有一个问题不是那么容易解决。
我有一个高级项目,我在getAuthenticationKey():string
的会话服务上有一个函数我已经从代码的不同部分(调用休息函数等)中使用了很多函数,并且我制作了它是一个普通的函数,因为我认为这个值会存在与否。
现在我们进行了一些更改,getAuthenticationKey
必须调用休息函数来刷新密钥(如果有必要)。
所以问题是我明白最好的方法就是做出承诺并重构整个项目,但这在几小时内太贵了,因为我必须为这个功能和所有其他功能做出承诺这取决于该功能(几乎所有的应用程序),并考虑到刷新是一个快速的操作,每天或每周调用一次,有没有办法解决这个问题而不重构所有的项目?
答案 0 :(得分:0)
你可以保持你的代码不变,只需添加一个定期检查器(setInterval(...)
),如有必要,它将更新authenticationKey
。如果您知道密钥的生命周期,则可以使用setTimeout(...)
而不是定期检查。
答案 1 :(得分:0)
我使用解析器解决了这个问题,因为我在加载页面时检查身份验证。在解析器中,我针对休息服务检查auth并将结果存储在服务中。