console.log('main-1')
function foo(param){
var p = new Promise(function(resolve, reject) {
console.log('promise-1')
if (param === 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-1
main-2
promise-1
promise-2
main-3
then-1
为什么main-3 会在promise运行之后
promise 异步是指的 then()方法,而不是指它的构造函数执行。详细可以参考 Promise
建议楼主好好看下这篇文章,可以更加了解JavaScript里的事件机制