Promise

var log = function(value){ console.log( value) ;}

Promise.resolve(1)
      .then(it=>  log(it) )                                                      // 输出1
      .then(it=> { log(it);  return Promise.resolve(2); } )      //输出 undefined
      .then(it=> { log(it); return 3 ;})                                    //输出2
      .then(it=> { log(it) ; return Promise.reject(4)  })         //输出3
      .then(it=> log("OK") )                                                // 不会输出 OK
      .catch(it=> { log(it) ; return Promise.resolve(5) ;})     //输出4
      .then(it=>  log(it) )                                                      //输出 5

结论

then 里的返回值, 会传递给下一个 then 的入参
then 如果返回 Promise.resolve , 则下一个 then 的入参是 Promise.resolve 的值 .
then 如果返回 Promise.reject , 则执行一下 catch .
then 的执行是 串行执行.

原文地址:https://www.cnblogs.com/newsea/p/9871044.html