169 похожих чатов

socket.on("notify", async (data) => {

async function requestPermission(
notificationTitle: string,
notificationBody: string
) {
const result = await Notification.requestPermission();
if (result === "denied") {
return;
}
console.log("notify!");
const registration = await navigator.serviceWorker.getRegistration();
registration?.showNotification(notificationTitle, {
body: notificationBody,
icon: "/vite.svg",
});
}

if (store.webNotifications && data) {
requestPermission(data.chat.name, data.text);
}
});

почему лог "notify" только один раз выводится, а уведомлений много ?

14 ответов

47 просмотров

видимо, дело в этом if (result === "denied") { return; }

kayr Султанбек
а в чем проблема ?

ну return знаешь как работает? Если result === "denied", то функция дальше не работает, и console.log("notify!") не срабатывает

kayr-Султанбек Автор вопроса
Роман Бандурин
ну return знаешь как работает? Если result === "de...

проблема в том что он мне хуева туча уведомлений показывает

kayr-Султанбек Автор вопроса
Роман Бандурин
каких?

if (store.webNotifications && data) { requestPermission(data.chat.name, data.text); } ну вот эти. Сообщения приходят и он раз 20 показывает вместо одного

kayr Султанбек
if (store.webNotifications && data) { r...

точно эти? вот тут const result = await Notification.requestPermission(); что делается?

kayr Султанбек
if (store.webNotifications && data) { r...

а зачем ты внутри хендлера еще какую-то function requestPermission определяешь?

kayr-Султанбек Автор вопроса
Роман Бандурин
точно эти? вот тут const result = await Notificati...

Это другая функция разрешение юзера берет

kayr Султанбек
if (store.webNotifications && data) { r...

ну это и должно срабатывать 20 раз. В store.webNotifications && data что?

kayr-Султанбек Автор вопроса
kayr Султанбек
При том что я вызываю функцию один раз?

каждый раз когда от сокета приходит ответ

kayr-Султанбек Автор вопроса
Роман Бандурин
каждый раз когда от сокета приходит ответ

А, ну да, но я в хэндлере где socket.on Выводил консол лог, и он выводится только один раз, и при перезагрузки страницы уведомления приходят только один раз как и задумывалась, но при дальше уже по нарастающей больше уведомлений становится

kayr Султанбек
А, ну да, но я в хэндлере где socket.on Выводил ко...

Так ты WS клиент инициализируешь значит каждый раз и не убиваешь старые клиенты

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта