js中的并行进程

时间:2016-02-28 20:51:17

标签: javascript asynchronous process synchronization

我有一个关于javascript中并行进程的问题。我的意思是异步过程。我需要同时播放两个音轨(同步)。但是,如果我连续调用它,轨道可以播放一点异步。:

audio.play();
audio2.play();

我认为,我几乎知道,javascript有反对意见。用于处理异步。动作。怎么样?

谢谢!

2 个答案:

答案 0 :(得分:1)

最简单的方法是使用名为async

的神奇库

然后你可以做

async.parallel([
    function(callback) { 
        audio.play();
        callback();
    },
    function(callback) {
        audio2.play();
        callback();
    }], function() {
          console.log("Both sounds running together");
});

或者我相信你可以像这样包装每个.play。

setTimeout(function() {
    audio.play();
});
setTimeout(function() {
    audio2.play();
});

答案 1 :(得分:0)

通常认为JS具有单个执行线程,这意味着它将在任务上阻止,直到它完成处理。但是,您仍然可以做一些事情来使其并发。

除了@Datsik提供的库之外,我还想提一下 web worker ,它是在您的Web应用程序中生成后台脚本的API 。但是,您需要浏览器支持才能成功运行Web worker。这是一个方便的website,您可以检查浏览器对Web worker的支持。此外,这是关于您的信息的另一个关于Web工作者的简短introduction。 (如果您想使用Web worker,可能需要稍微重构一下代码。)

祝你好运!