Уведомление перед окном подтверждения - PullRequest
0 голосов
/ 12 декабря 2018

Вот мой сценарий:

  • клиент открыл вкладку с моим веб-приложением
  • всякий раз, когда есть входящее соединение, я хотел бы уведомить егочерез API уведомлений
  • после нажатия на уведомление он должен быть перенаправлен на эту страницу / открытую вкладку
  • там он должен увидеть всплывающее окно подтверждения, где он может решить, хочет ли он принять соединение

Я знаю, как выполнять каждую часть, но у меня есть проблемы с правильным порядком.Я считаю, что это как-то связано со стеком вызовов JS.В следующем окне подтверждения кода всегда первым.Только после его подтверждения (или нет) отображается уведомление.

let n = new Notification("Incomming call");
let c = confirm('Do you accept?')

if(c) {
  return this.peer;
}

Как изменить порядок?Сначала уведомление, затем подтверждение.

1 Ответ

0 голосов
/ 12 декабря 2018

Уведомления асинхронные.Они запускают события, когда пользователь взаимодействует с ними.Вы можете обработать событие close, чтобы выполнить ваш код, когда пользователь закрывает уведомление.

let n = new Notification("Incomming call");
n.onclose = () => {
    let c = confirm("Do you accept?");
    if (c) {
        do_something(this.peer);
    }
};

Обратите внимание, что вы ничего не можете вернуть из функции onclose, поскольку она выполняется асинхронно.Вам нужно сделать все, что было бы сделано с возвращаемым значением в функции обратного вызова (обещания могут быть полезны для более четкого структурирования кода).См. Как вернуть ответ от асинхронного вызова?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...