我正在其中一个项目上安装Djaty Javascript SDK。现在已正确安装,我正在尝试使用Djaty.setUser()
我想设置所有可能的用户信息,所以我在两个地方的代码中都使用了Djaty.setUser()
。设置userId
的第一位,设置用户logon
的第二位。
第一名:
Djaty.setUser({userId: user.userId})
第二名:
Djaty.setUser({logon: user.username})
当我创建一个测试错误时,我希望该错误只有一个受影响的用户,但实际上现在有两个用户。我的代码有什么问题?
答案 0 :(得分:1)
首先,多次调用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
不存在,我们将退回到logon
。类似地,当使用isUserLogonAvailable
标志为false再次执行代码时,将再次提交错误,但是上下文用户将为{userId: user.userId, logon: user.userId}
。
现在您的错误发生了两个不同的用户:
1- userId
:user.username
2- userId
:user.userId
这将导致您询问两个受影响的用户。