鍍金池/ 問答/HTML/ 在Promise中, 不管resolve在哪個(gè)位置, 都是最后才執(zhí)行嗎?

在Promise中, 不管resolve在哪個(gè)位置, 都是最后才執(zhí)行嗎?

在Promise中, 不管resolve在哪個(gè)位置, 都是最后才執(zhí)行嗎? 誰能講講里面的運(yùn)行機(jī)制,或者分享個(gè)鏈接... 感謝!
代碼如下:

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');
    // 業(yè)務(wù)邏輯,沒有異步操作.....
    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);
      });
    }
  });
}

運(yùn)行結(jié)果:

clipboard.png

回答
編輯回答
編輯回答
乞許

不是resolve最后執(zhí)行,是執(zhí)行完這堆同步代碼,才輪到event loop去檢測microtask。
Js 的事件循環(huán)

2017年1月18日 10:05