学前端的大家都知道promise是重中之重,也是面试的必考项。但是刚接触promise我一直很晕头晕脑的,搜集文章前看后看基本都是讲解promise的状态它的方法就没有再深入了,以至于面试时候面试官一旦往深问我就懵了。所以今天我们就详细的说一下promise吧!!
promise是什么呢?它有什么用呢?为什么需要promise呢?
promise是什么?
promise就是一个异步编程的解决方案,ok我猜你应该没明白。gpt告诉我他是一个用来管理任务状态和结果的容器。
它有三种状态:pending,fulfilled,rejected,而且状态的变化只可以从pending-->fufilled;pending-->rejected
promise有什么用?
这个问题就要追朔到回调函数以及js的异步机制上了。
js是单线程语言,同一时间内只能执行一个任务。如果其中一个任务执行时间很长,那么后续的任务就要等待很久才能执行。举个例子,比如你在某平台点一份外卖(1分钟),商家制作(10分钟),外卖员送餐(加入距离远需要30分钟),现在规定外卖员在商家制餐这段时间什么都不能做只能在店里等着,你在送餐这段时间什么都不能做只能等餐,你想想是不是很痛苦。现在有一种机制叫异步,异步的话就是商家制餐这段时间外卖员可以去送别的单子,等做好了通知外卖员取餐。外卖员送餐这段时间你不用干等它,你去美美的刷了半小时短视频,然后外卖到了给你打电