我正在尝试将带有 rxjava 链的交互器重写为 kotlin 流。在 LocationHandlerImpl 中,我使用 LocationService 来获取我的当前位置。在 addOnSuccessListener 和 addOnFailureListener 我发出我的模型但有错误:
“只能在协程体内调用暂停函数”。我做错了吗?但是我可以在侦听器之外调用发射(查看流程构建器下方)
我有四个 Observable 的代码。我Observable.zip对他们应用:
Observable<Currencies> usd = CoinMarket.getMarketApi().getCurrencies();
Observable<Currencies> rub = CoinMarket.getMarketApi().getCurrencies("RUB");
Observable<Currencies> eur = CoinMarket.getMarketApi().getCurrencies("EUR");
Observable<Currencies> btc = CoinMarket.getMarketApi().getCurrencies("BTC");
List<Observable<Currencies>> singles = new ArrayList<>();
singles.add(usd);
singles.add(rub);
singles.add(eur);
singles.add(btc);
Observable<Currencies> c = Observable.zip(singles, new Function<Currencies[], Currencies>() {
@Override
public Currencies apply(@NotNull Currencies[] objects) throws Exception {
return ramming(objects);
}
});
Run Code Online (Sandbox Code Playgroud)
但我有错误:
该消息表示未找到具有此类签名的方法(也许我不正确),但我去声明并查看签名,有点像,是合适的。
public static <T, R> Observable<R> zip
(Iterable<? extends ObservableSource<? extends T>> sources,
Function<? super Object[], ? extends R> zipper)
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
PS:我认为这个错误RxJava2Iterableisbroken