laravel 用户没有离开聊天中的用户列表,即使他们离开了

tzcvj98z  于 2023-05-30  发布在  其他
关注(0)|答案(1)|浏览(107)

我让chat使用laravelangular我有能力返回聊天中的用户join和用户left,我这里的问题是当user离开时,他仍然在用户加入的聊天列表中,即使他离开聊天,他需要刷新给我的是,它已经消失了,我的角网站从来没有得到刷新,所以它总是停留在聊天列表中的用户加入

joinChat(id:any) {
    this.echo.join(`chat`)
      .here((users:any) => {
        this.users = users;
        this.users = this.users.filter(user => {
          return user.id !== id;
        }); 
        console.log('users here : ', this.users);
      })
      .joining((user:any) => {
        this.users.push(user);
        console.log('join : ', user.name, user);
      })
      .leaving((user:any) => {
        console.log('Leave : ', user.name, user);
        this.users = this.users.filter(userList => {
           user.id !== userList.id;
        }); 
      })
      .error((error:any) => {
        console.error(error);
      });
  }
7cwmlq89

7cwmlq891#

箭头函数中的大括号形成了函数体,而你失去了隐式返回。所以你需要显式地返回一个值,否则函数将返回undefined,因此过滤器不会接收 predicate ,而是void,它无法决定过滤掉什么。
请尝试将return添加到.leaving(...)中的过滤器 predicate 函数中

this.users = this.users.filter(userList => {
    return user.id !== userList.id;
});

或用圆括号替换花括号。

this.users = this.users.filter(userList => ( // <-- parens here
    user.id !== userList.id;
));

相关问题