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

promise 执行顺序

promise 执行顺序

温温酱 2018-07-09 15:30:35
console.log('main-1')function foo(param){var p=new Promise(function(resolve,reject){console.log('promise-1');if(parem==1){resolve('1')}else{reject('2')}console.log('promise-2')})return p;}console.log('main-2');foo(1).then(function(value){console.log('then-1');})console.log('main-3')运行结果是 main-1main-2promise-1promise-2main-3then-1为什么main-3 会在promise运行之后
查看完整描述

1 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

因为Promise内部除了resolve和reject外,都是同步的。也就是说Promise内执行顺序是这样
**先console.log('promise-1');
**然后碰到了resolve,异步的,跳过等待执行。
**然后同步往下执行下去,好碰到了console.log('promise-2'),执行。
**ok同步的代码执行完了,Promise结束。
**然后往下执行,console.log('main-3'),执行完这个console后,ok同步的代码又执行完了。
**执行Promise里的异步代码,也就是resolve,console.log('then-1');
异步代码是等待一段时间再执行的,与此同时,同步代码不会停止执行会一直往下走

查看完整回答
反对 回复 2018-07-21
  • 1 回答
  • 0 关注
  • 1125 浏览
慕课专栏
更多

添加回答

举报

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