summary refs log tree commit diff stats
path: root/tests/async/tjsandnativeasync.nim
blob: 45839899f8b937c6f25e9708bc891943a50253d6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
discard """
  output: '''hi
bye'''
"""

import async, times
when defined(js):
    proc sleepAsync(t: int): Future[void] =
        var promise = newPromise() do(resolve: proc()):
            {.emit: """
            setTimeout(function(){
                `resolve`();
            }, `t`);
            """.}
        result = promise
else:
    from asyncdispatch import sleepAsync, waitFor

proc foo() {.async.} =
    echo "hi"
    var s = epochTime()
    await sleepAsync(500)
    var e = epochTime()
    doAssert(e - s > 0.1)
    echo "bye"

when defined(js):
    discard foo()
else:
    waitFor foo()