Future timeout(Duration duration, { Function before, Function after })

Returns a Future that resolves after Duration and optionally calls before and after the Duration.

Source

Future timeout(Duration duration, {Function before, Function after}) async
{
    if ( before != null ) before();
    await wait(duration);
    if ( after  != null ) after();
}