串行、并行
- 串行
    
- 定义:一个接一个的执行
 
 
function f1(){
    const p1 = new Promise(function (resolve, reject) {
     setTimeout(() => reject("err"), 3000)
    })
return p1;
}
function f2(){
    const p2 = new Promise(function (resolve, reject) {
      setTimeout(() => resolve(2), 1000)
    })
return p2;
}
function f3(){
    const p3 = new Promise(function (resolve, reject) {
      setTimeout(() => resolve(3), 2000)
   })
return p3;
}
function fc(arr){
    var obj={
        rs:[],
        rj:[]
    };
    // Promise.resolve方法调用时不带参数,直接返回一个resolved状态的 Promise 对象。
    var sequence = Promise.resolve();
    arr.forEach(function (item) {
    // 第一次的 then 方法用来执行数组中的每个函数,
    // 第二次的 then 方法接受数组中的函数执行后返回的结果,
    // 并把结果添加到 data 中,然后把 data 返回。
        sequence = sequence.then(item).then(function (res) {
            obj.rs.push(res);
            
            return obj;
        },function(err){
            obj.rj.push(err);
            
            return obj;
        });
    })
    return sequence
}
fc([f1,f2,f3]).then(v=>{
    console.log(v)
})
执行结果
{ rs: [ 2, 3 ], rj: [ 'err' ] }
- 并行
    
- 定义:同时执行
 
Promise.all([p1,p2,...])