I'm not sure what I'm doing wrong. Can anyone spot the problem?

**Declaration**
    
    
    proc newAudioWorkletNode*(ctx: AudioContext, name: cstring): AudioNode 
{.importjs: "new AudioWorkletNode(@,@)".}
    
    
    Run

**Client code (compilation successful):**
    
    
    import dom
    import webaudio
    import std/asyncjs
    
    proc init(c : AudioContext) : AudioNode {.async.} =
      discard await c.audioWorklet.addModule("worklets/random-noise.js")
      var n = newAudioWorkletNode(c, "random-noise")
      n.connect(c.destination)
    
    window.addEventListener("click") do(e: Event) :
      var ctx : AudioContext = newAudioContext()
      discard init(ctx)
      ctx.resume()
    
    
    Run

**Client code (compilation fails with message** `type mismatch: got 
'Future[webaudio.AudioNode]' for 'jsResolve(n)' but expected 'AudioNode = ref 
AudioNodeObj'`)
    
    
    import dom
    import webaudio
    import std/asyncjs
    
    proc init(c : AudioContext) : AudioNode {.async.} =
      discard await c.audioWorklet.addModule("worklets/random-noise.js")
      var n = newAudioWorkletNode(c, "random-noise")
      result = n
    
    window.addEventListener("click") do(e: Event) :
      var ctx : AudioContext = newAudioContext()
      var noise = init(ctx)
      noise.connect(ctx.destination)
      ctx.resume()
    
    
    Run

Reply via email to