Newbie to reactive programming in JAVA, I have a function `buildRow` that makes an async call to get hold of id and then use that determine a boolean value, this function always return's before async call gets completed. How do i make it return only after the async call completes and boolean value is determined?

```
public Row buildRow(Row row) {
    Mono<Long> id = reader.getColumn(row.getId());
    id
        .doOnNext(value-> {
            boolean isEnabled = reader.isEnabled(value);
            // This is getting returned second
            testRow(row, isEnabled);
         })
         .subscribe();
    // This is getting returned first
    return row;
}

public Row testRow(Row row, boolean isEnabled) {
  if (isEnabled) {
     return row;
  } else {
    return new Row();
  }
}

// Triggered in another function like this
map(row -> buildRow(row))

```