waitCommandResult method

Future<CommandResult> waitCommandResult(
  1. CommandFilterFunc filterFunc,
  2. int timeout
)
inherited

等待指令返回 @param filterFunc 指令筛选条件 @param timeout 等待时间 秒为单位

@return CommandResult

Implementation

Future<CommandResult> waitCommandResult(
    CommandFilterFunc filterFunc, int timeout) async {
  Completer<CommandResult> completer = Completer();
  CommandCondition condition = CommandCondition(filterFunc, completer);
  Future.delayed(Duration(seconds: timeout), () {
    _commandFilters.remove(condition);
    if (!completer.isCompleted) {
      completer.complete(CommandResult(false, 0, null));
    }
  });
  _commandFilters.add(condition);
  return completer.future;
}