SOURCE

// let pro = new Promise((resolve,reject)=>{
//     setTimeout(()=>{
//         resolve(console.log('本来我先执行'));
//     },2000);
//     resolve(console.log('本来我后执行'));
// });
// pro.then((value)=>{
//     console.log('成功');
// },(reason)=>{
//     console.warn('警告');
// });
const someAsyncThing = function() {
  return new Promise(function(resolve, reject) {
    // 下面一行会报错,因为x没有声明
    resolve(x + 2);
  });
};

someAsyncThing().then(function() {
  return someOtherAsyncThing();
}).catch(function(error) {
  console.log('oh no', error);
  // 下面一行会报错,因为 y 没有声明
//   y + 2;
}).then(function() {
  console.log('carry on');
}).catch((err)=>{
    console.log('y没生命');
});
console 命令行工具 X clear

                    
>
console