为了账号安全,请及时绑定邮箱和手机立即绑定

Promise对象

Promise对象

杨__羊羊 2018-12-12 15:14:37
在不使用Promise对象,仅使用简单的回调函数来实现异步操作时(如setTimeout),JavaScript引擎(主线程)都会依赖于浏览器的其他线程(如定时触发线程)来并发的执行异步任务的第一个阶段,当第一个阶段结束时,返回结果并将作为异步任务的第二个阶段的回调函数推送入消息队列中,依靠Event Loop让主线程读取执行,那么,使用Promise对象时,Promise对象是否就像是一个代理,浏览器的辅助线程首先将异步任务第一阶段的结果传递给Promise对象,并改变Promise对象的状态,然后通过Promise对象将异步任务比一阶段执行的结果传递给调用之前通过then()或catch()为异步任务第二个阶段注册的回调函数,从而来执行异步任务的第二阶段?那么通过then()或catch()注册的回调函数也会进入消息队列中吗?浏览器是不是也有一个线程来管理Promise对象,就像浏览器的HTTP异步请求线程来管理Ajax一样?是不是使用Promise后,更加繁琐了?对于Promise的本质还是没有弄清,有没有大神能够形象的讲解一下Promise到底和普通的回调函数实现异步有那些区别.....不胜感激
查看完整描述

1 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

有没有大神能够形象的讲解一下Promise到底和普通的回调函数实现异步有那些区别.

没区别,它就是一个工具性质的封装。跟你定义一个函数来封装重复用到的逻辑一样。


查看完整回答
反对 回复 2019-01-23
  • 1 回答
  • 0 关注
  • 510 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信