completeAction method
The way this system works is that everytime a message is sent to proPresenter a "completer" is created with the name of the relevant "action" Then, whenever we get a message from ProPresenter, we "complete" that completer which allows us to specify "callbacks" for propresenter requests
Implementation
void completeAction(String action, [dynamic value]) {
if (completers.containsKey(action)) {
if (!completers[action]!.isCompleted) completers[action]?.complete(value); // value might be null
completers.remove(action);
}
}