ES6中的Promise十分的好用,可以在一定程度上有效的避免回调嵌套的尴尬境地,但是promise.prototype.then调用顺序却容易被忽视
then()的执行顺序是在主要操作执行完成后再执行,即使代码顺序写在then()后面,也是先执行后再执行then()里面的回调
console.log('before promise');
function test() {
return new Promise((reslove, reject) => {
console.log("in promise");
reslove();
})
}
test().then(() => {
console.log('in then');
})
console.log('after test()');
//before promise
//in promise
//after test()
//in then
由上面的例子可以看出after test()输出后才输出then内部的回调,这要做可以避免主线程的阻塞