这些导出功能是否相同?

时间:2019-01-10 20:47:15

标签: javascript vue.js ecmascript-6

这些出口是否相同?对我来说,一种有效,另一种无效,但我不知道区别。

工作

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());

1 个答案:

答案 0 :(得分:1)

您正在导出一个函数而不是一个值。就像在工作代码中一样,这通过在导出函数之前对其进行评估来使您的不工作变为工作

export default (() => {
    const faqStore = new Vapi({
        baseURL: 'http://domain.test/api',
        state: {
            faqs: [],
        }
    }).get({
        action: 'getFaqs',
        property: 'faqs',
        path: '/faqs'
    })

    return faqStore.getStore()
})()