使用 vuex + feathers 异步等待

async await with vuex + feathers

请检查下面我的代码。我正在尝试将 Async Await 实现到 vuex 中。一切正常,但我想在此之后调用另一个操作,所以我正在尝试使用 async await 但它不起作用。在控制台中 console.log("after all this" +res) res 变量显示未定义。

action.js

import { createUpload } from '../api/index'
export default {
    fetchImageUrl: async({ commit }, reader) => {
      let res = await createUpload({ commit }, reader);
      console.log("after all this" +res)
    }
}

api/index.js

import { feathersClient } from './apiClient'
const uploadService = feathersClient.service('uploads');
export const createUpload = ({commit}, reader) => {
  uploadService
    .create({uri: reader.result})
    .then(function(response){
        commit('setImageUrl', { url: response.imageurl })
        return true;
    });
}

mutations.js

export default {
    setImageUrl: (state,{ url } ) => {
      state.imageUrl = url
    }
}

LeftPanel.vue

const reader  = new FileReader();
export default {
  name: 'left-panel',
  data () {
    return {
      open: true
    }
  },
  methods: {
    uploadFile: function (event) {
      let store = this.$store;
      let file = event.target.files[0];
      reader.readAsDataURL(file);
      reader.onload = function(event) {
        return store.dispatch('fetchImageUrl',reader)
      };
    }
  },
  components: {
    'add-text': AddText
  },
}

uploadService.create前添加return语句。

index.js

export const createUpload = ({commit}, reader) => {
  return uploadService
    .create({uri: reader.result})
    ...
}