梗概

  • 通常需要一个控制中心来管理
    • 记录每个线程的各种状态
      • 当其中一个线程出错时,能够依据这个线程的信息来单独处理错误

实例:

1. 以并行发送多个http请求为例

要求:

  • 所有的http请求都成功才能进行下一步
  • 有一个http请求失败,就单独重传

1.1. 控制中心

我们可以设计这样一个控制中心:

declare interface reqController{
        reqList: REQ_INFO[],//每个reqInfo对应一个http请求
        reqAbort: boolean//是否中止整个http应用
}
declare interface REQ_INFO {
    'ID': number,
    'stat': 'unRespon' | 'error' | 'success',
    'respon': any,//存放响应数据
    'requestor': Function,//存放http请求方法,用以首次发送和超时重传
    'errCount': number//用来给超时重传进行计数
}

适用范围:

  • 多任务同时进行的情况
    • 例如:多线程管理,多异步函数并行管理