hasura_connect
                                
                                 hasura_connect copied to clipboard
                                
                                    hasura_connect copied to clipboard
                            
                            
                            
                        await connect for subscription
solves https://github.com/Flutterando/hasura_connect/issues/90
When creating a subscription hasura_connect checks if a connection already exists. If not, it creates it before returning the snapshot. But it returns the snapshot without awaiting the connection to be established: https://github.com/Flutterando/hasura_connect/blob/master/lib/src/presenter/hasura_connect_base.dart#L204.
I forked this repo and the corrected version works for me. I must admit I have not understood all of the code under hasura_connect's hood though. So hopefully this is the right thing to do.
any chance this is reviewed and merged? otherwise we keep getting Error: HasuraRequestError: an operation already exists with this id.... thanks guys!
and the problem continues. Need to merge this commit
this branch has conflicting
Since I created this pull request, the code has been changed from:
if (snapmap.keys.isNotEmpty && !_isConnected) {
  // ignore: unawaited_futures
  _connect();
} else if (_isConnected) {
  final input = querySubscription(snapshot.query);
  sendToWebSocketServer(input);
}
return snapshot;
to:
///If the snapmap keys is not empty and it's not connected, connects
///else if is connected, the input receives the query subscription and
///send it to web socker server
if (snapmap.keys.isNotEmpty && !_isConnected) {
  // ignore: unawaited_futures
  _connect();
  await Future.delayed(const Duration(milliseconds: 500));
} else if (_isConnected) {
  final input = querySubscription(snapshot.query);
  sendToWebSocketServer(input);
}
/// returns the snapshot
return snapshot;
I can't tell whether that solves the issue (maybe better). I am not using flutter any more. So maybe this pull request does not make sense any more?