【问题标题】:How to use method from promise on condition?如何在有条件的情况下使用承诺中的方法?
【发布时间】:2019-12-23 23:34:28
【问题描述】:

我懒加载了这个模块 const getMockedModule = () => import("z-mock-client") 并想使用这个模块中的 mockedClient 方法:

const mockedClient = () => createMockedClient({
    mocks,
    typeDefs,
})

export {
    mockedClient
}

在这种情况下,我使用这个 var

const getCat = () => import("z-mock-client")
const mocked = getCat().then(prop => prop.mockedClient())
const apolloProvider = new VueApollo({
    defaultClient: MOCKED_UI ? mocked : v2,
    clients: {
        v2: MOCKED_UI ? mocked : v2
    }
})

但是在 mocked var 的结果上,我得到了

Promise {<pending>}
[[PromiseStatus]]: "resolved"
[[PromiseValue]]: ApolloClient

如何获得类似于const mocked 的结果的承诺值?

【问题讨论】:

    标签: javascript vue.js promise lazy-loading


    【解决方案1】:

    你应该在 promise 返回后使用条件代码。像这样:

    const getCat = () => import("z-mock-client")
    const mocked = getCat().then((prop) => {
      prop.mockedClient()
      const apolloProvider = new VueApollo({
        defaultClient: MOCKED_UI ? mocked : v2,
        clients: {
            v2: MOCKED_UI ? mocked : v2
        }
      })
    });
    

    【讨论】:

    • 对我来说没有意义,因为我在 MOCKED_UI 标志条件下加载 getCat 模块,规则:在 js 包中插入或不插入 getCat 模块
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    相关资源
    最近更新 更多