gpt4 book ai didi

swift - RxSwift/Moya - 如果通过函数返回序列将不会启动

转载 作者:行者123 更新时间:2023-11-30 12:01:26 25 4
gpt4 key购买 nike

我尝试通过 Moya 启动网络请求。

    let provider = MoyaProvider<User>()

provider.rx.request(.Auth(username: username, password: password))
.filterSuccessfulStatusAndRedirectCodes()
.debug()
.mapOptional(to: Authentication.self)
.observeOn(MainScheduler.instance)
.subscribe {
event in
print(event)
}.disposed(by: disposeBag)

当我按照上述方式进行操作时,一切正常。

但是如果我这样做:

func logIn(username: username, password: password) -> Single<Authentication?> {

let provider = MoyaProvider<User>()

return provider.rx.request(.Auth(username: username, password: password))
.filterSuccessfulStatusAndRedirectCodes()
.debug()
.mapOptional(to: Authentication.self)
}

然后调用函数:

self.loginIn(username: username, password: password)
.observeOn(MainScheduler.instance)
.subscribe {
event in
print(event)
}
.disposed(by: disposeBag)

调试输出表明它已被订阅,但如果我通过函数返回它,它不会启动序列。

最佳答案

我已经解决了这个错误。您需要保留提供商。将其存储在实例变量中,并且不会被释放。

https://github.com/Moya/Moya/issues/1460

关于swift - RxSwift/Moya - 如果通过函数返回序列将不会启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47166312/

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