Pergunta

Estou tentando fazer algum trabalho assíncrono n itens e aguarde até que todos os itens sejam concluídos antes de continuar.

O que eu coloco no whatfunc? local para que o onComplete da assinatura seja acionado uma vez?

Observable.range(0, n)
    .<whatfunc?>({ s ->  doAsyncWorkThatReturnsObservable(s) })
    .(other?)
    .subscribe({println "All complete"})

Obrigado

Foi útil?

Solução

mapa plano

Certifique-se de fornecer encerramentos para os argumentos corretos em subscribe.Exemplo do link ajustado para se adequar ao exemplo fornecido:

Observable.range(0, n)
    .flatMap({n -> doAsyncWorkThatReturnsObservable(n)})
    .subscribe(
       { println(it); },                          // onNext
       { println("Error: " + it.getMessage()); }, // onError
       { println("Sequence complete"); }          // onCompleted
    );
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top