Javascript库来处理多个延迟的异步调用

时间:2019-02-15 09:24:12

标签: asynchronous task settimeout delay

嗨,我正在尝试编写一个能够在不同的开始时间播放多个音频文件的功能。我正在使用Soundmanager,但不幸的是,它们不支持偏移。因此,我建立了自己的setTimeout来实现所需的功能。

但是很快,我意识到我需要一个更强大的库来处理某种任务库功能。我想要的是一个可以处理不同线程中的多个任务,同时又能够控制它们的时间延迟的库。 (例如:我可以在播放器中向前/向后跳过)。

有没有可以做到这一点的图书馆?

您可以参考我的简单示例。我尝试重叠多个音频文件。

function timer(callback, delay) {
var id, started, remaining = delay, running

this.start = function() {
    running = true
    started = new Date(); 
    if (remaining > 0)
    id = setTimeout(callback, remaining)
}

this.pause = function() {
    running = false
    clearTimeout(id)
    remaining -= new Date() - started
}

this.stop = function() {
    running = false;
    clearTimeout(id);
    remaining = 0;
}


this.getTimeLeft = function() {       
    if (running) {
       this.pause()
       this.start()
    }

    return remaining
}

this.getStateRunning = function() {
    return running
}

this.setTimeLeft = function(timeLeft){
    remaining = timeLeft;
}

this.start()
}

Code

0 个答案:

没有答案