Dispatch message with variant arguments.

Basic

    MessageCall mc = MessageCall();
    mc.add("online", () => print("online 1"));
    mc.add("online", () => print("online 2"));
    mc.fire("online");
    // online 1
    // online 2

Return value

    MessageCall mc = MessageCall();
    mc.add("online", () => 1);
    mc.add("online", () => 2);

    List<dynamic> r1 = mc.fireSync("online");//sync
    print(r1);
    // [1, 2]
    List<dynamic> r2 = await mc.fire("online");//async
    print(r2);
    // [1, 2]

With Arguments

    MessageCall mc = MessageCall();
    mc.add("online", (String name, {String? message}) => print("$name is online: $message"));
    mc.add("online", (String name, {String? message}) => print("Again. $name is online: $message"));

    await mc.fire("online", "Tom", message: "Hello Jerry.");
    // Tom is online: Hello Jerry.
    // Again. Tom is online: Hello Jerry.

Libraries

entao_message