Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
zavskladych
0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 2
1

Задача с подпиской на функции и callback

02.02.2018, 16:46. Просмотров 915. Ответов 1
Метки нет (Все метки)

Вот такая задача. Уже несколько часов сижу и абсолютно никаких мыслей. По комментариям, думаю, понятно, что долен делать код.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// I need pubsub pattern implemented
// I register an event with on(eventName, function)
// when an event occurres, I need a function to be run
 
// expected output:
// FIRST: I am eating an apple.
// SECOND: I am eating an apple.
// FIRST: I am eating meat.
// SECOND: I am eating meat.
// FIRST: I am eating a pineaple.
// SECOND: I am eating a pineaple.
 
// eventsObj should be an object with key as eventName and value is an array of functions
const eventsObj = {};
 
(function () {
    on('eat', stringData => {
        console.log('FIRST: I am eating ' + stringData + '.');
    });
 
    on('eat', stringData => {
        console.log('SECOND: I am eating ' + stringData + '.');
    });
 
    setTimeout(() => {
        emit('eat', 'a pineaple');
    }, 3000);
 
    setTimeout(() => {
        emit('eat', 'meat');
    }, 2000);
 
    setTimeout(() => {
        emit('eat', 'an apple');
    }, 500);
})();
 
function on(eventName, callback) {
    // initialize an empty event array
    eventsObj[eventName] = eventsObj[eventName] || [];
    // here we need to push a new function that comes as callback an an array
    // write your code below...
    eventsObj
}
 
function emit(eventName, stringData) {
    // eventsObj is an object with key as eventName and value is an array of functions
    // you need to run each function with given data as an argumnet (stringData)
    // write your code below...
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2018, 16:46
Ответы с готовыми решениями:

Callback функции
Есть запрос вроде этого: somevar.select(data, function(response) { // callback code. }); ...

Получить данные и callback функции
Всем привет ! Ребят, пишу приложение. Вызываю апи вконтакта для получения списка друзей...

Return callback функции, вызываемой в цикле
Всем привет! Пишу extension для шаблонизатора, который получает через AJAX шаблон, в нем находит...

Почему callback-функции называются функциями ОБРАТНОГО вызова
Доброго времени. Нуждаюсь в объяснении. Очередной вопрос в стиле «Что такое callback-функции и...

This в callback функции jQuery.post
Нужно изменить поля объекта, который вызвал post запрос. Но в функции this указывает на что-то...

1
j2FunOnly
Модератор
Эксперт JS
1366 / 1166 / 619
Регистрация: 05.06.2015
Сообщений: 2,547
02.02.2018, 16:55 2
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function on(eventName, callback) {
  // initialize an empty event array
  eventsObj[eventName] = eventsObj[eventName] || [];
  // here we need to push a new function that comes as callback an an array
  // write your code below...
  eventsObj[eventName].push(callback);
}
 
function emit(eventName, stringData) {
  // eventsObj is an object with key as eventName and value is an array of functions
  // you need to run each function with given data as an argumnet (stringData)
  // write your code below...
  if (!eventsObj.hasOwnProperty(eventName)) return;
 
  eventsObj[eventName].forEach(e => e(stringData));
}
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2018, 16:55

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

For_each и аргументы callback-функции; Как передать callback'у больше одного аргумента
Изучаю контейнеры и алгоритмы stl по Майерсу . С непривычки слегка охренел и запутался в них . В...

Callback функции
Зачем они нужны? Можете привести пример, где конкретно без них не обойтись. Также есть вопрос по...

Callback функции в Windows
Нужно получить runtime способность вызыва любой callback функции. Например обрабочики wndproc,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.