JavaScript 回调 - 多线程
JavaScript callback - multithreading
我想开发一个非常简单的战略游戏。您可以在 http://wiesenberg.info/hope/上找到示例!
如果单击某个按钮,将创建该项目(进度条)。完成后,该项目将出现在操场上。如您所见,如果您一个接一个地单击它就可以工作。但是,一旦您单击一个按钮两次(启动 2 个相同类型的项目),第二个项目将不会完成,因为第一个项目尚未完成并增加了变量。有没有一种简单的方法来执行多线程或仅解决我的错误?
我还想添加一个功能,您可以通过单击进度条来停止项目。我试了一下,它在列表中消失了,但图标仍然显示,因为该函数没有得到另一个函数被执行。所以我还需要进度条的中断功能。我希望你理解我的问题!谢谢
这是重要的代码:
function addSygehus() {
sygehusBarID++;
sygehusID++;
$("#addProject").append("<div id=sygehus" + sygehusID +
" class='progress progress-striped active'><div class='progress-bar progress-bar-success' id=sygehusbar"
+ sygehusBarID + " aria-valuetransitiongoal='100'>Sygehus</div></div>");
function countdown(callback) {
var bar = document.getElementById("sygehusbar"+sygehusBarID),
time = 0, max = firsttime,
int = setInterval(function() {
bar.style.width = Math.floor(100 * time++ / max) + '%';
if (time - 1 == max) {
clearInterval(int);
// 600ms - width animation time
callback && setTimeout(callback, 600);
}
}, 1000);
}
countdown(function() {
$("#sygehus" + sygehusID).remove();
$("#sygehusPic" + sygehusID).show(1000);
});
}
我会查看JQuery Deferred(http://api.jquery.com/jQuery.Deferred/)和Promise文档,以管理您要实现的目标。因此,您可以对异步调用发生的顺序应用一些控制。
您还有 Q.js (https://github.com/kriskowal/q) 是用于管理此类方案的不错库。
否则,您有已经提到的用于模拟多线程行为的 Web 工作者,但我认为这不是您想要的。
相关文章:
- javascript中的多线程
- Javascript支持多线程吗
- Doppio:多线程是如何工作的,有什么限制吗
- 为什么Javascript SetTimeout()不是多线程的
- 从多线程C++插件回调NodeJS Javascript函数
- 电子框架是否允许网络工作者进行多线程处理
- 如何使用并行/多线程Hamsters.js Javascript库编辑数组中的对象属性
- 是否可以使用多线程执行Javascript函数
- 使用不同选项卡的Javascript中的多线程
- 多个ajax回调函数编辑localStorage
- IONIC是否支持用Java开发的多线程和调用jar库
- 纳肖恩多线程编程
- 节点JS单线程与多线程(CPU利用率:有什么区别吗?
- JavaScript 回调 - 多线程
- 有时,JavaScript是多线程的
- 使用多线程.js访问范围
- 这个 Web worker 代码是多线程的吗,我是否获得了什么
- Javascript 多线程两个窗口焦点
- ActiveX多线程调用javascript回调例程出现问题
- XPCOM C++多线程和javascript回调