【发布时间】:2019-09-22 07:46:52
【问题描述】:
我正在通过制作应用程序来学习 Swift´s Combine,尝试解决现实世界的用例。
一个常见的情况,我正在执行一个请求,并且身份验证令牌已过期。如果请求失败并出现 401,我想刷新令牌。
类似:
fetchData()
.flatMap { data, response
if response.statusCode == 401 {
refreshToken()
.fetchData()
} else {
Just(data)
}
}
.keepDoingThings()
请记住,这只是伪代码。
我确实尝试了一些东西,但它是一团糟。 :)
如何做到这一点?
谢谢!
【问题讨论】:
-
通常文档会提前告诉你token什么时候过期。因此,您应该在令牌过期之前刷新它。这将减少您发出的网络请求数。