I am working on spring reactive and need to call multiple calls sequentially to other REST API using webclient. The issue is I am able to call multiple calls to other Rest API but response am not able to read without subscribe or block. I can't use subscribe or block due to non reactive programming. Is there any way, i can merge while reading the response and send it as flux. Below is the piece of code where I am stuck.
public Mono<DownloadDataLog> getDownload(Token dto, Mono<DataLogRequest> request) {
    Mono<GraphQlCustomerResponse> profileResponse = customerProfileHandler.getMyUsageHomeMethods(dto, null);
    DownloadDataLog responseObj = new DownloadDataLog();
    ArrayList<Mono<List<dataUsageLogs>>> al = new ArrayList<>();
    return Mono.zip(profileResponse, request).flatMap(tuple2 -> {
        Flux<List<Mono<DataLogGqlRequest>>> userequest = prepareUserRequest(getListOfMdns(tuple2.getT1()),
                tuple2.getT2());              
        Flux.from(userequest).flatMap(req -> {
            for (Mono<DataLogGqlRequest> logReq : req) {
                al.add(service.execute(logReq, dto));
            }
            responseObj.setAl(al);
            return Mono.empty();
        }).subscribe();
          return Mono.just(responseObj);
    });
}
private Mono<DataLogGqlRequest> prepareInnerRequest(Mono<DataLogGqlRequest> itemRequest, int v1,int v2){
    return itemRequest.flatMap(req -> {
        DataLogGqlRequest userRequest = new DataLogGqlRequest();
        userRequest.setBillDate(req.getBillDate()); 
        userRequest.setMdnNumber(req.getMdnNumber());
        userRequest.setCposition(v1+"");    
        userRequest.setPposition(v2+"");
        return Mono.just(userRequest);
    });
    
    
}