fix: some fixes of multiple notification read (#8819)

* fix: limit multiple notification read

* fix

* fix
This commit is contained in:
tamaina 2022-06-12 19:28:13 +09:00 committed by GitHub
parent 3a987b0006
commit 11a6bd890c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 2 deletions

View file

@ -37,12 +37,22 @@ class SwNotificationReadManager {
account.queue.push(data.body.id as string);
if (account.queue.length >= 20) {
if (account.timeout) clearTimeout(account.timeout);
const notificationIds = account.queue;
account.queue = [];
await api('notifications/read', data.userId, { notificationIds });
return;
}
// 最後の呼び出しから200ms待ってまとめて処理する
if (account.timeout) clearTimeout(account.timeout);
account.timeout = setTimeout(() => {
account.timeout = null;
api('notifications/read', data.userId, { notificationIds: account.queue });
const notificationIds = account.queue;
account.queue = [];
api('notifications/read', data.userId, { notificationIds });
}, 200);
}
}