微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在返回字符串信息不变的情况下调用函数两次

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

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

如何编码,以便我可以在同一个测试的另一个班级中第二次使用相同的回复电子邮件地址?

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

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

解决方法

您可以将逻辑拆分为 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)

,

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。