| library async_periodictimer; | |
| import 'dart:async'; | |
| import 'package:unittest/unittest.dart'; | |
| main(message, replyTo) { | |
| var command = message.first; | |
| expect(command, 'START'); | |
| int counter = 0; | |
| new Timer.periodic(const Duration(milliseconds: 10), (timer) { | |
| if (counter == 3) { | |
| counter = 1024; | |
| timer.cancel(); | |
| // Wait some more time to be sure callback won't be invoked any | |
| // more. | |
| new Timer(const Duration(milliseconds: 30), () { | |
| replyTo.send('DONE'); | |
| }); | |
| return; | |
| } | |
| assert(counter < 3); | |
| counter++; | |
| }); | |
| } |