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

Javascript 在返回字符串信息不存在的情况下调用函数两次';不变,javascript,ui-automation,playwright,Javascript,Ui Automation,Playwright,我已经用Javascript为一个web应用程序编写了一个前端自动化测试,其中您使用电子邮件地址创建一个新用户,用户登录、注销,然后使用您最初创建的相同电子邮件地址详细信息重新登录到系统中 我在Javascript中有以下函数用于此。在同一类中调用此函数时,它将返回以下电子邮件字符串“email1615148555@example.com". 当在另一个类中再次调用此函数时,“ts”部分会因时间的变化而改变 如何编写代码,以便在同一测试的另一个类中第二次使用相同的返回电子邮件地址 请注意,每次测

我已经用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();
    }

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


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

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

您可以将逻辑拆分为两个单独的函数,并跨多个调用重用时间戳

const timestamp=()=>Math.round(new Date()).getTime()/1000);
功能测试(时间戳){
返回config.email+时间戳+“@example.com”;
}
常量ts=时间戳()
测试(ts)
测试(ts)

func
在一个类中吗?@evolutionxbox-是的,它在一个类中谢谢你的回答它工作得很好!