在 return 字符串信息不变的情况下调用函数两次

Calling a function twice where return string information doesn't change

我在 Javascript 中为 Web 应用程序编写了一个前端自动化测试,在该应用程序中,您使用电子邮件地址创建新用户,用户登录、注销,然后使用您最初创建的相同电子邮件地址详细信息。

为此,我在 Javascript 中有以下功能。当我在同一个 class 中调用此函数时,它 return 发送以下电子邮件字符串“email1615148555@example.com”。 当在另一个 class 中再次调用此函数时,'ts' 部分会因为时间的变化而发生变化。

我如何编码才能在同一测试中的另一个 class 中第二次使用相同的 return 电子邮件地址?

请注意,每次测试本身运行时都会生成一个唯一的电子邮件地址。

func() {
        var ts = Math.round((new Date()).getTime() / 1000);
        var consumerEmail = config.email + ts + "@example.com";
        return consumerEmail.toString();
    }

实施记忆概念以达到预期结果

https://www.freecodecamp.org/news/understanding-memoize-in-javascript-51d07d19430e/

您可以为此创建一个单例服务并执行如下操作:

var consumerEmail = new (function () {

  var consumerEmail = "";

   this.get = function() {
     if (!consumerEmail){
       var ts = Math.round((new Date()).getTime() / 1000);
       consumerEmail = config.email + ts + "@example.com";
     }

     return consumerEmail.toString();
  }
})();

然后调用它:

getConsumerEmail.get();

您可以将逻辑拆分为 2 个单独的函数,并在多个调用中重复使用时间戳。

const timestamp = () => Math.round(new Date()).getTime() / 1000);

function test(timestamp) {
    return config.email + timestamp + "@example.com";
}

const ts = timestamp()

test(ts)
test(ts)