promise

let p = new Promise(function (resolve, reject) {
  console.log("1");
  resolve("2");
})
p.then(function (val) { 
  console.log(val) 
})
console.log("3");
//打印 1 3 2

代码分析如下:

(1).执行Promise构造函数之后,立马执行其回调函数,于是"1"被打印。

(2).然后执行resolve("2"),p的状态变为Resolved,于是执行then方法,打印"2"

(3).最后再打印"2",然而事实是首先打印"3",再打印"2"。

(4).即便调用resolve("2")不存在任何延迟,甚至可以认为是同步进行,但整体依然是异步操作。

解决地狱回调的方法

(1)promise 链式编程

原文地址:https://www.cnblogs.com/maizilili/p/12689509.html