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 ответов

40 просмотров

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

kayr-Султанбек Автор вопроса
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 клиент инициализируешь значит каждый раз и не убиваешь старые клиенты

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

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

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта