导出仅在首次引用时唯一的变量

问题描述

在某些情况下,我尝试创建一个使用Math.random().toString(36).slice(2);或类似方法设置的全局变量,但是每当再次引用该变量时,它不会生成新的随机字符串,而是返回已经生成随机字符串。

但是在parallel.conf.js中,然后在Runner.js中,我有两个不同的字符串。 我尝试了以下逻辑:如果localIdentifierundefined生成一个随机字符串,如果没有,则通过引用已插入的字符串返回已经生成的字符串。

添加了与夜视仪+浏览器堆栈相关的设置,但并不认为这很重要。 如果不清楚,请告诉我,我可以提供更多背景信息。

parallel.conf.js

let localIdentifier;

let defineLocalIdentifier = (function(){
    if (localIdentifier === 'undefined') {
        localIdentifier = nightwatch_config.common_capabilities["browserstack.localIdentifier"];
        return localIdentifier;
    } else {
        localIdentifier = Math.random().toString(36).slice(2);
        return localIdentifier;
    }
})();

nightwatch_config = {
common_capabilities: {
        'browserstack.user': <user>,'browserstack.key': <key>,'browserstack.tunnel': true,'browserstack.localIdentifier': defineLocalIdentifier,'browserstack.local': true,'name': 'Bstack-[Nightwatch] Parallel Test',acceptInsecureCerts: true,javascriptEnabled: true,acceptSslCerts: true,}

module.exports = nightwatch_config;
module.exports.bs = {
    localIdentifier : defineLocalIdentifier
}

runner.js

const nightwatchConfig = require('./parallel.conf').bs.localIdentifier;

function browserstack () {
const browserstackArgs = {
            key: apiKey,'force': 'true','forceLocal': 'true','verbose': 'true','localIdentifier': nightwatchConfig
        };


解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)