SOURCE

let p = new Promise((resolve, reject) => {
      setTimeout(function(){
            var num = Math.ceil(Math.random()*10); //生成1-10的随机数
            if(num <= 5){
                resolve(num);
            }
            else{
                reject('数字太大了');
            }
      }, 2000);
    });
// p.then((data) => {
//   console.log('resolved', data)
// }, (err) => {
//   console.log('rejected',err)
// })
p.then((data) => {
  console.log('resolved', data)
  console.log(somedata)
}).catch((err) => {
  console.log('rejected',err)
})
// 在resolve的回调中,我们console.log(somedata);而somedata这个变量是没有被定义的。如果我们不用Promise,代码运行到这里就直接在控制台报错了,不往下运行了。但是在这里,会得到这样的结果
console 命令行工具 X clear

                    
>
console