Promise

156 阅读1分钟
new Promise( (resolve, reject) => 
{ //先进入这里执行,把resolve/reject的东西压入队列,其他的同步 }).then();

let promise = new Promise( (resolve, reject) => {
    resolve("fulfilled");//压入队列
    console.log("后盾人");//1
});
promise.then( msg => {
    console.log(msg);
} );
console.log("houdunren.com");//2

//输出顺序:后盾人,houdunren.com,fulfilled
  • new Promise 之后,会直接进入函数体执行

  • 同步执行Promise内的函数体,但遇到resolve/reject这样的Promise相关函数要加入队列中等待

  • Promise的两个参数分别是resolve函数和reject函数

  • 碰到resolve函数执行,Promise进入fulfilled状态,resolve的参数进入then的第一个函数,处理结果

  • 碰到reject函数执行,Promise进入rejected状态,reject的参数进入then的第二个函数/catch内部,处理结果