1. promise 的由来
1.1 异步
我们都知道 js 是单线程的,也就是说一次只能完成一件任务。如果有多个任务,就必须排队,等待前面一个任务完成,再执行后面一个任务。
这种方式虽然实现起来比较简单,执行环境相对单纯,但是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段 js 代码长时间运行(比如死循环),导致整个页面卡在这个地方,其他任务无法执行。
为了解决这个问题,js 语言将任务的执行模式分成两种:同步和异步(异步任务不具有”堵塞“效应)。