gpt4 book ai didi

swift - 我第二次调用该函数时未触发 RxAlamofire 请求

转载 作者:行者123 更新时间:2023-11-30 10:48:31 25 4
gpt4 key购买 nike

我有一个应该返回 Observable 的函数。当我第一次调用该函数时,一切都很顺利,我收到了预期的结果,但第二次我想使用不同的参数发出相同的请求时,该函数会自动返回与之前相同的响应,但它不会完全激发请求。有多个嵌套请求,因为每个新请求都依赖于前一个请求的结果。

它看起来像这样:

func request1() -> Observable<String> {
return RxAlamofire
.requestString(.get, url)
.map { (response, html) -> Result<String> in
.....
return newUrl
}
}

private func request2(credentials: Credentials) -> Observable<String> {
return request1()
.flatMapLatest { (newUrl)

return RxAlamofire
.requestString(.get, newUrl)
.flatMapLatest { (response, _) -> Observable<String> in

let params = ["username": credentials.username, "password": credentials.password]

return RxAlamofire
.requestString(.post, (response.url?.absoluteString)!, parameters: params)
.flatMapLatest { (response2,str) -> Observable<String> in

... some code formating ...

return RxAlamofire
.requestString(.post, actionUrl!, parameters: anotherParameters)
.map { return result }
}
}
}
}

当我调用它时,它看起来像这样:

result = someObservable.flatMapLatest { return ScrapingService.request2(credentials: $0) }

当我触发“someObservable”时,它会按预期运行 request2,但不会发出实际请求。

最后我对结果执行 onNext 操作。

最佳答案

when I am calling it it looks something like this :

result = someObservable.flatMapLatest { return ScrapingService.request2(credentials: $0) }

你不是在这里“调用”可观察的。你只是在创造它。为了从 Observable 获取结果,您必须订阅它。

关于swift - 我第二次调用该函数时未触发 RxAlamofire 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55209838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com