Promise使用可以解决什么问题?async的使用?
简介:Promise主要用于异步计算,可以让异步操作队列化,按照直接期望的结果。
状态三个:
pending(等待状态)
fulfiled(成功状态)
rejected(失败状态)
状态一旦改变就不会在改变了,要么成功要么失败。
两个参数:
分别是resolve和reject,当状态发生变化成功会通过resolve返回成功结果,如果失败会通过reject返回失败结果。
为了避免界面冻结(任务)
同步:
假设你去了一家饭店,找个位置,叫来服务员,这个时候服务员对你说,对不起我是“同步”服务员,我要服务完这张桌子才能招呼你。那桌客人明明已经吃上了,你只是想要个菜单,这么小的动作,服务员却要你等到别人的一个大动作完成之后,才能再来招呼你,这个便是同步的问题:也就是“顺序交付的工作1234,必须按照1234的顺序完成”。
异步:
则是将耗时很长的A交付的工作交给系统之后,就去继续做B交付的工作,。等到系统完成了前面的工作之后,再通过回调或者事件,继续做A剩下的工作。
AB工作的完成顺序,和交付他们的时间顺序无关,所以叫“异步”。
一句话,async 函数就是 Generator 函数的语法糖。
generator(生成器)是ES6标准引入的新的数据类型。一个generator看上去像一个函数,但可以返回多次。