SOURCE

// Promise的模型:
// 挂起状态  已决状态  未决状态   三种状态
// Promise对象只能将挂起状态 推向另外两种状态(Promise是同步代码,只是推向不同的状态)
// 理解Promise: Promise构造函数是推向状态用的(Promise),推向不同的状态
// 对应不同的作业队列(then处理函数)

// 已决状态:是正常的逻辑状态(resolve)
// 未决状态: 是失败(发生错误,请求失败404,500, reject)

let pro = new Promise((resolve, reject)=>{
    console.log('Promise');
    setTimeout(()=>{
        if(Math.random()<0.5) {
            reject('推向失败状态')
        } else {
            resolve('推向已决,可以在then中做正常的逻辑处理')
        }
    }, 100)
})
pro.then(res=>{
    console.log(res);
}, err=> {
    console.log(err);
})

// 也可以将Promise封装成函数
function test(list) {
    return new Promise((resolve, reject)=>{
        resolve(list)  //Promise只是推向已决,然后把Promise返回出去。在外面进行处理
    })
}

let List = test('123');
List.then(res=>{
    console.log(res);
});
console 命令行工具 X clear

                    
>
console