运行two async.并联串联
Run two async.series in parallel
我正在制作一个简单的javascript游戏。虽然我使用警报,但因为它们很简单,所以我尽量使程序异步,以便于用HTML替换警报。目前,我设置了新的播放器和他的两个控制键如下:
var name = "Player";
// TODO: Replace with HTML element
name = prompt("Name?", "Player "+gameSlave.lines.length+1);
var color = 0xFFFFFF;
color = parseInt(prompt("Color (hex)?", "0x"+Math.round(Math.random()*16777215)).toString(16),16);
var keys = {right:null, left: null};
async.series([
/** KEY GATHERING BOCK **/
//Empty function to clear event loop buffer where keystrokes are still remaining
function(callback){setTimeout(callback, 50);},
function(callback){gatherControlKey("LEFT", function(key) {keys.left=key;callback()});},
function(callback){gatherControlKey("RIGHT", function(key) {keys.right=key;callback()});},
/** REMOTE PLAYER GATHERING BLOCK **/
function(callback) {
// If player is added, continue
gameSlave.once("player.added", callback);
// Ask game to create new player
gameSlave.emit("player.requested", name, color);
},
function(callback) {
alert("Player set!");
},
]);
有两个独立的块:
- 收集玩家控制键
- 请求服务器创建一个播放器(服务器返回名称,id和颜色)。
所以我想异步运行两个同步链。比如:
async.parallel([ //This throws error f you fill something in series
async.series([ ... ]),
async.series([ ... ])
]);
我不认为你的问题是清楚的,你不是说什么是你的具体问题,你只说它抛出一个异常,所以我试图猜测什么是错误的在你的代码。我认为你的语法是不正确的,你应该把这个系列包装在两个函数中,这样当这个系列结束时,它们就可以有一个回调函数来调用。是不是应该是
async.parallel([
function(pCb) {
async.series([
function(cb) {
console.log(1);
cb();
}
], function() {
console.log("completed first series");
pCb();
})
},
function(pCb) {
async.series([
function(cb) {
console.log(2);
cb();
}
], function() {
console.log("completed second series")
pCb();
})
}
], function() {
console.log("completed parallel");
});
如果这不能解决问题,那么你能把你的问题说得更具体一点吗?
相关文章:
- jQuery加载的async和ready函数不工作
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- 超过了async.detect最大调用堆栈大小
- 如果数组仍在执行,async.forEach()将运行我添加到数组中的新元素
- node.js应用程序中的async.js问题
- Javascript Tilde & Two's complement
- 使用async.parallel时出错
- async.js和系列问题
- async问题,JS Promise无法返回结果,但可以使用console.log
- 在Redux中链接async和sync操作以计算初始状态
- 为什么当async标志设置为false时,xmlhttprequest中的代码可以工作,而当它设置为true时却不能工作
- 使用ajax调用中的数据而不使用async:false
- Node.js时使用async是有意义的
- async.parallel中的回调是如何工作的(它来自哪里?)
- Jquery mobile-如何在two.html中检索从one.html传递的数据
- Javascript Async thunk
- async.retry-已调用回调
- jQuery没有指定异步调用级别async:false
- node.js,async,restify:无法使restify调用在async.series内同步
- 运行two async.并联串联