有人可以告诉我为什么第一个代码被触发而第二个代码没有被触发吗?(假设“ someEndPoint”工作正常)
let provider = MoyaProvider<MyApiService>()
provider.rx.request(.someEndPoint).subscribe(onSuccess: { response in
print("triggered")
}, onError: { error in
}).disposed(by: disposeBag)
MoyaProvider<MyApiService>().rx.request(.someEndPoint).subscribe(onSuccess: { response in
print("not triggered")
}, onError: { error in
}).disposed(by: disposeBag)
两种代码之间的区别仅在于是否使用“ let”。我无法在第二个代码中打印“未触发”,并且看不到第二个代码的任何网络日志。我真的很想知道为什么。
提前致谢。
在第一个示例中,您正在创建并保留提供程序。
在第二个示例中,您先创建提供程序,然后调用,request
但您没有保留提供程序,因此在发出请求之后且服务器满足请求的时间很久之前就将其释放。
网络请求需要一段时间才能返回,并且提供者需要保持存在直到出现。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句