gpt4 book ai didi

函数外的javascript变量(使用异步/等待)?

转载 作者:行者123 更新时间:2023-12-01 16:25:03 28 4
gpt4 key购买 nike

我有以下代码由于语法错误而无法运行(在异步函数外等待)

  1. 如何使用 await 定义变量并将其导出?

  2. 当我这样定义一个变量并从其他文件导入它时,该变量是只创建一次(第一次读取文件时?)还是每次导入时都创建?

代码..

import _ from 'lodash'
import remoteConfig from '@react-native-firebase/remote-config'

class RemoteConfig {
constructor() {
if (__DEV__) {
//Fetch, no cache. activate
remoteConfig().fetchAndActivate(0)
} else {
//Fetch, cache for 5 minutes and activate
remoteConfig().fetchAndActivate()
}
}

static async build() {
await remoteConfig().setConfigSettings({
minimumFetchIntervalMillis: 300000,
})

return new RemoteConfig()
}

setDefaults(defaults) {
remoteConfig().setDefaults(defaults)
}

getValues(keys) {
return _.pick(remoteConfig().getAll(), keys)
}

getValue(key) {
return remoteConfig().getValue(key)
}
}

export let firebaseConfig = await RemoteConfig.build()

我将它与 import {firebaseConfig} from path/to/thefile 一起使用

最佳答案

  1. await 只能在async 函数中使用。无法使用 await 语法导出变量。

  2. 由于无法使用 await 导出,因此很难说是否每次都会调用 RemoteConfig.build()。如果我们假设,您编写了 firebaseConfig = RemoteConfig.build();。该函数将在评估模块时调用一次。

解决方法如下:

您可以定义一个函数来设置 firebaseConfig 并在应用启动时调用它。

所以:

export let firebaseConfig;

export async function setFirebaseConfig() {
firebaseConfig = await RemoteConfig.build();
}

这将允许您不多次调用 RemoteConfig.build()。此外,firebaesConfig 可以在没有 await 语法的情况下导出。

关于函数外的javascript变量(使用异步/等待)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63108271/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com