我正在尝试在我的应用程序中模拟api体验,因为数据存储在json文件中,并且不会有http服务器为该应用程序提供服务。
在api.js
文件中,我是这样的:
import libraries from '../store/data/data.json'
export { search }
const search = function (payload) {
new Promise((resolve, reject)=>{
resolve(payload)
})
}
从Vuex动作中,我试图按如下方式调用api:
import * as api from '@/api'
export const actions = {
async SEARCH_ITEM({commit}, payload) {
await api.search(payload)
.then(res=>{
console.log(res)
})
}
}
但是出现以下错误:
未捕获(承诺)TypeError:无法读取Store.SEARCH_ITEM中未定义的属性“ then”
很可能我在api.js
部分做错了。有人可以指引我正确的方向吗?
答案 0 :(得分:2)
默认情况下,除非您指定返回值,否则JavaScript函数将返回undefined
。您的search
函数正在创建一个Promise,但它没有返回该Promise。将return
关键字添加到函数中,以便调用者可以使用Promise和已解析的值:
const search = function (payload) {
return new Promise((resolve, reject)=>{
resolve(payload)
})
}