【发布时间】:2019-06-05 19:01:48
【问题描述】:
这些出口是否相同?对我来说,一个有效,另一个无效,但我不知道有什么区别。
工作
const faqStore = new Vapi({
baseURL: 'http://domain.test/api',
state: {
faqs: [],
}
}).get({
action: 'getFaqs',
property: 'faqs',
path: '/faqs'
})
export default faqStore.getStore()
不工作
export default () => {
const faqStore = new Vapi({
baseURL: 'http://domain.test/api',
state: {
faqs: [],
}
}).get({
action: 'getFaqs',
property: 'faqs',
path: '/faqs'
})
return faqStore.getStore()
}
我怎样才能让没有工作的例子表现得像工作的例子,以便我可以将参数传递给函数?
这就是它们各自的使用方式......
工作
import faqStore from './faqs'
...
await store.registerModule('faqs', faqStore));
不工作
import faqStore from './faqs'
...
await store.registerModule('faqs', faqStore());
【问题讨论】:
-
不,它们不相等。第一个导出
faqStore.getStore()的返回值。第二个导出一个函数(调用faqStore.getStore())。但它们都是有效的。它们是否“工作”取决于它们的使用方式。 -
您的第一个示例似乎很奇怪,因为正如@FelixKling 所说,它导出了
getStore()的返回值,并且由于您将其用作模块,因此该值一旦计算出来就永远不会改变(即任何其他导入这个模块的模块总是会得到相同的值,没有办法更新它)。我怀疑这可能不是您想要的。 -
问题已更新以显示它的使用方式@FelixKling
-
在什么情况下它不起作用?它会抛出错误吗?
-
我是否遗漏了什么或者工作和不工作的代码是一样的?
标签: javascript vue.js ecmascript-6