btw, we often try to avoid using completer if possible (it's easy to forget to forward errors through them). In this code, I think you can avoid them by simply returning directly from `.then`. For example:

```dart
Future<List<String>> getIsolateIds()  => _request('/isolates/')
    .then((res) =>  (res['members'] == null) ? []
         : resp['members'].map((isolate) => isolate['id']).toList());
```

or
```dart
Future<List<String>> getIsolateIds()  => _request('/isolates/')
    .then((res) =>  res['members'])
    .then((members) => members == null ? [] : members.map((isolate) => isolate['id']).toList());
```