工作中遇到一个业务需求。实行一个任务队列,前一个任务执行完了以后再去执行下一个任务。我本想用promise实行一个异步串行的队列。但这次情况跟以往不一样。想了有一段时间想不出来了,求教大佬~业务场景抽象出来是:存在如下任务队列 T = [A,B]同时全局下面已经存在有一个监听函数 F = onStateChange(res => 'res是我想要判断的值')A和B都安上一个run方法(返回promise),该方法会执行一段触发State改变的逻辑,然后再根据res的值决定是resolve还是reject具象出来是:小程序连接蓝牙 需要给蓝牙设备发送好几条指令 根据上一条指令是否通过才能进行下一条指令。
2 回答
慕森王
TA贡献1777条经验 获得超3个赞
按你的意思是每个任务的状态全是会变成完成的是吗?
假设你的监听函数监听的是State这个变量,那么在每个任务结束是判断下这个变量的值来决定是否退出。
async function t(){
const T=[A,B];
for(let i=0;i<T.length;i++){
await T[i].run();
// 假设失败会改成`failed`
if(State=="failed"){
console.log("队列任务失败");
break;
}
}
}
添加回答
举报
0/150
提交
取消