javascript - 使用 vuex + Feather 进行异步等待

标签 javascript vue.js async-await vuex feathersjs

请检查下面我的代码。我正在尝试将 Async Await 实现到 vuex 中。一切正常,但我想在此之后调用另一个操作,因此我尝试使用 async wait 但它不起作用。在控制台 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})
    ...
}

关于javascript - 使用 vuex + Feather 进行异步等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46215682/

相关文章:

c# - 第三方使用的 Azure 函数 REST API - 是否需要使用 ConfigureAwait(false)?

javascript - 如何在 promise 中正确实现 mongodb async/await?

javascript - Firebase 如何比较数据规则中的变量(== vs ===)?

JavaScript:函数执行顺序

javascript - 动态导入会分割代码但不会延迟加载

javascript - Vue.js 中 Express-Handlebars 部分的等价物是什么?

typescript - Pinia:无法从 Nuxt3 API 访问商店

javascript - useEffect React Hook 使用异步等待(提交按钮)多次渲染

javascript - 哪些库可用于记录用户浏览您的网站以进行可用性测试?

javascript - 如何让我的幻灯片重复播放?