【发布时间】:2020-10-16 15:11:45
【问题描述】:
我很确定这应该是可能的,我只是在寻找错误的东西,但我要做的是在同一个发布者链中执行 2 个网络请求。
基本上,我正在尝试获取 JSON Web 令牌(从 Web 或本地),然后使用该 JWT 执行请求的获取。
我创建了一个自定义订阅和发布者来获取我的 JWT,它在本地存储令牌并检查它是否有效,以便可以重用、续订或首次请求。但是,我无法弄清楚如何将其与 fetch 一起使用。
这就是我所在的位置(请暂时忽略强制展开):
JWTState.publisher(JWTState.urlRequest!)
.tryMap { (jwtState) -> String in
guard jwtState.isValid == true else {
throw JWTError.invalidJWT
}
return jwtState.jwt
}
.map { (jwt) -> URLRequest in
URLRequest.jsonRequest(url: url, jwt: jwt)
}
那时我有一个有效的URLRequst 用于使用有效的 JWT 进行提取,但我只是不知道如何调用链中的下一个 URLSession.shared.dataTaskPublisher 或 URLSession.shared.dataTask。
我希望我错过了一些发布者或功能,或者有人可以引导我朝着正确的方向前进。我还猜测我可能必须创建另一个自定义订阅和发布者对,但目前我看不出这样做有什么帮助。
提前致谢。 ????
【问题讨论】:
-
URLRequest.jsonRequest是什么? -
这只是一个自定义扩展,它从 url 和 jwt 形成 JSONRequest。