我正在构建一个与第三方API交换数据的Meteor应用程序,如果令牌过期,我需要一个同步运行的方法来交换访问令牌的刷新令牌。
我在一种方法中使用以下内容:
tokenExpiration = Meteor.user().services.box.expiresAt
if Date.now() - tokenExpiration > 0
Meteor.call("refreshToken")
else
console.log("Token valid. Proceed with call to Box API")
refreshToken
方法就像这样开始,就像任何其他方法一样:
Meteor.methods(
refreshToken: ->
...LOGIC HERE...
)
我知道逻辑是正确的,因为如果我把它直接放在原始方法(上面)中它可以正常工作。问题是,当我在原始方法中使用Meteor.call("refreshToken")
时,Meteor只会挂起该行并拒绝进一步移动。原始方法是从客户端调用的,但其余的都在服务器上发生。
我没有看错,我错过了什么吗?