У меня возникли проблемы, когда я обдумываю следующую концепцию.
Я отправляю сообщения ОС C, чтобы запросить состояние приборов в Ableton, поэтому я продолжаю комбинировать эммитер / приемник. Дело в том, что я хотел бы избежать необходимости поддерживать какое-то глобальное состояние и оборачивать все вокруг этим. и я общаюсь с Ableto следующим образом:
sender.emit("/live/device", queryData);
receiver.on("/live/device", function(responseData){
// process response here...
})
Таким образом, вы можете сказать, что я не совсем уверен, когда получаю данные обратно, и не могу по-настоящему упорядочить новые запросы на основе ответов.
То, что я хотел бы сделать, это просто
query number of instruments on ONE certain channel
get number back
query parameters of each instrument of that channel based on first query
receive parameters back
Но проблема в том, что я понятия не имею, как обернуть eventListeners для ответа на эти запросы, или, скорее, как упорядочить их так, чтобы это не блокируя и все же избегая какого-либо глобального состояния.
Запрос данных и сохранение Обещания, которые должны быть разрешены с помощью eventListener, кажутся решением, но потом я застрял на том, как передать их обратно в последовательность.
После некоторого исследования кажется, что такого рода поведение нарушает всю концепцию слушателей событий, но тогда я полагаю, что весь смысл в том, чтобы иметь какое-то глобальное состояние для отслеживания того, что происходит, верно?