Javascript Djaty-为什么使用'Djaty.setUser()时受影响的用户计数不准确?

Javascript Djaty-为什么使用'Djaty.setUser()时受影响的用户计数不准确?,javascript,djaty,Javascript,Djaty,我正在我的一个项目上安装DjatyJavaScript SDK。它现在已正确安装,我正在尝试使用Djaty.setUser() 我想设置所有可能的用户信息,因此我在代码中的两个位置使用了Djaty.setUser()。设置用户ID的第一个位置和设置用户登录的第二个位置 第一名: Djaty.setUser({userId: user.userId}) 第二名: Djaty.setUser({logon: user.username}) 当我创建一个测试bug时,我希望bug只有一个受影响的用

我正在我的一个项目上安装DjatyJavaScript SDK。它现在已正确安装,我正在尝试使用
Djaty.setUser()

我想设置所有可能的用户信息,因此我在代码中的两个位置使用了
Djaty.setUser()
。设置用户ID的第一个位置和设置用户登录的第二个位置

第一名:

Djaty.setUser({userId: user.userId})
第二名:

Djaty.setUser({logon: user.username})

当我创建一个测试bug时,我希望bug只有一个受影响的用户,但实际上它现在有两个用户。我的代码有什么问题?

首先,多次调用
Djaty.setUser
将每次覆盖上下文用户对象。例如,按照您提到的顺序调用它将导致一个只具有
logon
属性的对象

关于您的问题,以下情况可能导致此问题:

if (isUserLogonAvailable) {
  Djaty.setUser({logon: user.username});
} else {
  Djaty.setUser({userId: user.userId});
}

app.notExistingMethod();
isUserLogonAvailable
标志为true时,
app.notExistingMethod()
错误发生时,上下文用户将为
{userId:user.username,logon:user.username}
,因为如果
userId
不存在,我们将退回到
登录。类似地,当使用
isUserLogonAvailable
标志再次执行代码时,将提交另一个错误事件,但上下文用户将是
{userId:user.userId,logon:user.userId}

现在,出现的错误有两个不同的用户:

1-
userId
user.username

2-
userId
user.userId


这将导致您询问的两个受影响的用户。

首先,多次调用
Djaty.setUser
将每次覆盖上下文用户对象。例如,按照您提到的顺序调用它将导致一个只具有
logon
属性的对象

关于您的问题,以下情况可能导致此问题:

if (isUserLogonAvailable) {
  Djaty.setUser({logon: user.username});
} else {
  Djaty.setUser({userId: user.userId});
}

app.notExistingMethod();
isUserLogonAvailable
标志为true时,
app.notExistingMethod()
错误发生时,上下文用户将为
{userId:user.username,logon:user.username}
,因为如果
userId
不存在,我们将退回到
登录。类似地,当使用
isUserLogonAvailable
标志再次执行代码时,将提交另一个错误事件,但上下文用户将是
{userId:user.userId,logon:user.userId}

现在,出现的错误有两个不同的用户:

1-
userId
user.username

2-
userId
user.userId


这会导致您询问的两个受影响的用户。

确切地说,就是这样。非常感谢。确实如此。非常感谢。