Понимание обратных вызовов addEventListener из API?

Я просто пытаюсь понять прослушиватель событий в Jitsi Meet API, я не сталкивался с чем-то подобным, и я уверен, что это та же концепция во многих API - я не уверен в подходе.

В основном в API-интерфейсе Jitsi Meet вы можете использовать api.addEventListener(audioMuteStatusChanged, listener); настроить прослушиватель событий, если отключен звук. В основном, true, если приглушено, false, если нет. Я пытаюсь получить значение, чтобы видеть, когда он отключен или когда он не отключен.

В нем говорится: «Параметр прослушивателя — это объект Function с одним аргументом, который будет уведомлен, когда произойдет событие с данными, связанными с событием».

Итак, как мне получить истинное ложное значение, когда что-то изменилось?

const result = api.addEventListener(audioMuteStatusChanged, return isitmuted);

Изменить: Пробовал с:

 if (audioChatApi) {
  audioChatApi.addEventListener(audioMuteStatusChanged, function(listener) {
   if (listener){
     console.log("True " + listener);
   } else {
     console.log("False");
   };
 });
 };

так и не решил, думаю мероприятие не для этой задачи


person JronCh    schedule 10.08.2018    source источник
comment
Как это вообще связано с @deceze   -  person JronCh    schedule 10.08.2018
comment
Это очень важно. Я добавил кучу дубликатов о обратных вызовах. Прочтите их, чтобы ознакомиться с концепцией.   -  person deceze♦    schedule 10.08.2018
comment
@RobStark — вы пытаетесь поместить где-то выражение return, что ожидается функция. Туда нужно поставить функцию и из нее нельзя вернуться (по крайней мере, не в result).   -  person Quentin    schedule 10.08.2018
comment
Тот же принцип, нельзя. Вы должны инициировать все, что должно произойти со значением true/false внутри обработчика событий.   -  person Shilly    schedule 10.08.2018
comment
В двух словах: событие audioMuteStatusChanged произойдет некоторое время спустя, возможно, несколько раз, непредсказуемо. Нет смысла хотеть что-то от него возвращать. Нет, вам нужно привязать function к этому событию, чтобы вы могли делать что-то, когда это событие происходит. Тогда вы ничего не return делаете, тогда вы что-то делаете.   -  person deceze♦    schedule 10.08.2018
comment
и не решил, я думаю, что событие не для этой задачи – Что это значит? Что он сделал, чего не сделал, что вы хотели, чтобы он сделал?   -  person deceze♦    schedule 10.08.2018
comment
@deceze Я попытался выполнить console.log (сделал правку выше), и это ничего не дало - я предполагаю, что прослушиватель событий не для этой цели. Это регистрируется по умолчанию jitsy всякий раз, когда я отключаю звук в чате, он показывает: [modules/API/API.js] ‹Object.toggle-audio›: Audio toggle: получена команда API Logger.js:125 [modules/RTC/JitsiLocalTrack .js] ‹r›: Mute LocalTrack[1,audio]: true Что соответственно перевернет true и false, я думал, что это сможет каким-то образом получить это значение true false   -  person JronCh    schedule 10.08.2018
comment
Наверное, должно. Хотя что такое audioMuteStatusChanged? Это должно быть имя события, а не переменной (если только эта переменная не содержит имя события, но это странно). Должно быть что-то вроде audioChatApi.addEventListener('audioMuteStatusChanged', function ...).   -  person deceze♦    schedule 10.08.2018
comment
@deceze согласно github.com/jitsi/jitsi-meet/ blob/master/doc/api.md написано audioMuteStatusChanged — уведомления о событиях об изменении состояния отключения звука. Я только что заработал, используя что-то еще в том же списке, api.isAudioMuted().then(function(muted) {   -  person JronCh    schedule 10.08.2018


Ответы (1)


Не будет ли это примерно следующим?

const result = api.addEventListener(audioMuteStatusChanged, function(isMuted) {
  if (isMuted){
    //some code here
  } else {
    //some code here
  }
});
person andriusain    schedule 10.08.2018
comment
Я попробовал это с помощью: }; и похоже мероприятие просто не для этой работы - person JronCh; 10.08.2018