同步代码假设上一步已经处理出结果
而异步则不知道什么时候能得到上一步的结果, 只能用回调, 然后进入层层回调地狱
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