同步代码假设上一步已经处理出结果

而异步则不知道什么时候能得到上一步的结果, 只能用回调, 然后进入层层回调地狱

Promise 就来解决这个问题, 先假装拿到了结果进行制定好计划(看起来像同步代码)

用银行排队来比喻Promise

入职新公司办工资卡

Promise 就是排队小票(可以制定计划)

你不用在队伍中干等着, 有了小票你甚至可以暂时离开银行去购物(不阻塞)

轮到你了就开始办银行卡然后把卡号告诉人事小姐姐(顺序执行)

Promise 就是易读易维护版的callback

Promise 示例

readFile(file1)
  .then((file1-data) => { /* do something */ })
  .then((previous-promise-data) => { /* do the next thing */ })
  .catch( /* handle errors */ )

Promise状态

Understanding Async Await

https://css-tricks.com/understanding-async-await/