emitWithAckAsync method

Future emitWithAckAsync(
  1. String event,
  2. dynamic data, {
  3. Function? ack,
  4. bool binary = false,
})

Emits an event and waits for an acknowledgement

Implementation

Future emitWithAckAsync(String event, dynamic data,
    {Function? ack, bool binary = false}) {
  var withErr = flags['timeout'] != null || _opts!['ackTimeout'] != null;
  var completer = Completer();

  emitWithAck(event, data, ack: (arg1, [arg2]) {
    if (withErr) {
      if (arg1 != null) {
        completer.completeError(arg1);
      } else {
        if (ack != null) ack(arg2);
        completer.complete(arg2);
      }
    } else {
      if (ack != null) ack(arg1);
      completer.complete(arg1);
    }
  }, binary: binary);
  return completer.future;
}