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

时间:2019-02-07 22:03:43

标签: javascript djaty

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

我想设置所有可能的用户信息,所以我在两个地方的代码中都使用了Djaty.setUser()。设置userId的第一位,设置用户logon的第二位。

第一名:

Djaty.setUser({userId: user.userId})

第二名:

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

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

1 个答案:

答案 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- userIduser.username

2- userIduser.userId

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