# JavaScript, <s>81 77</s> 74 bytes

<!-- begin snippet: js hide: false console: false babel: false -->

<!-- language: lang-js -->

    var t,i=(i||[3,1,1]),a=i.pop()
    clearTimeout(t)
    t=setTimeout(_=>alert(a),9)

<!-- end snippet -->

Pretty lame JS solution. Consumes the values from the `[3,1,1]` array from the right (`pop()`). Registers a timeout to display the current value in the future. If a timeout was already registered, cancel it.
Relies on the dirty nature of `var`, which hoists variable declarations.

## Two times:

<!-- begin snippet: js hide: true console: false babel: false -->

<!-- language: lang-js -->

    var t,i=(i||[3,1,1]),a=i.pop()
    clearTimeout(t)
    t=setTimeout(_=>alert(a),9)

    var t,i=(i||[3,1,1]),a=i.pop()
    clearTimeout(t)
    t=setTimeout(_=>alert(a),9)

<!-- end snippet -->

## Three times:

<!-- begin snippet: js hide: true console: false babel: false -->

<!-- language: lang-js -->

    var t,i=(i||[3,1,1]),a=i.pop()
    clearTimeout(t)
    t=setTimeout(_=>alert(a),9)

    var t,i=(i||[3,1,1]),a=i.pop()
    clearTimeout(t)
    t=setTimeout(_=>alert(a),9)

    var t,i=(i||[3,1,1]),a=i.pop()
    clearTimeout(t)
    t=setTimeout(_=>alert(a),9)

<!-- end snippet -->