我有这个:https://jsfiddle.net/ahhc9tjn/
问题在于这两个功能:
addShip()
为什么我必须等待这项工作?我的意思是函数不是异步的,所以应该
stopAllShipCSS()
仅在
之后致电(1)
$.when(this.stopAllShipCSS()).then(this.addShip());
(2)
var it = 0;
var save = this;
this.ships.forEach(function(ship) {
ship.css({
'animation':''
});
it++;
if (it == save.ships.length) {
save.addShip();
}
});
问题是,在addShipTest1中,停止是"在"之后调用或"忽略" ...(JSFiddle显示问题)。
编辑:
我试过的解决方案,但这并没有成功:
const input = {
a: ['b', 'c'],
b: ['d', 'e', 'f'],
c: ['g'],
d: ['h'],
}
const recur = (d) => {
const ch = input[d]
if (!ch) {
return {
data: []
};
}
let out = [];
for (let i = 0; i < ch.length; i++) {
const c = ch[i]
const x = recur(c)
if (x.skip) { // if any of the child met filter
return x
}
if (c === 'd') { // current id met filter
return {
data: [c].concat(x.data),
skip: true
}
}
out = out.concat([c], x.data)
}
return {
data: out
}
}
console.log("end: ", recur('a').data)