在Promise中, 不管resolve在哪个位置, 都是最后才执行吗?
在Promise中, 不管resolve在哪个位置, 都是最后才执行吗? 谁能讲讲里面的运行机制,或者分享个链接... 感谢!
代码如下:
actions.getForbiddenFuncList = function(context){
return new Promise((resolve, reject) => {
serverUtils.getData(serverUtils.GETFORBIDDENFUNCLIST,null,(resData)=>{
if(resData.success){
resolve();
console.log('1')
context.commit('SETFORBIDEENFUNCLIST', resData)
console.log('2')
console.log('3')
}
});
})
}
mutations.SETFORBIDEENFUNCLIST = function (state, data) {
console.log('SETFORBIDEENFUNCLIST, 1');
// 业务逻辑,没有异步操作.....
console.log('SETFORBIDEENFUNCLIST, 2');
}
actions.initData = function(context,payload) {
actions.loadControl(context,{ show: true });
serverUtils.getData(serverUtils.GETBYID,{id: payload.id},function(data) {
if (data.success) {
actions.getForbiddenFuncList(context).then(() => {
console.log('a')
context.commit('INITDATA', data.data);
console.log('b')
actions.getQuestionData(context,data.data.questionUrl);
actions.checkSliceUpdate(context,payload);
});
}
});
}
运行结果:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不是
resolve
最后执行,是执行完这堆同步代码,才轮到event loop
去检测microtask
。Js 的事件循环
js 事件循环了解一下