Как уже упоминалось, знак доллара предназначен для использования с помощью механически сгенерированного кода. Однако это соглашение было нарушено некоторыми чрезвычайно популярными библиотеками JavaScript. JQuery, Prototype и MS AJAX (AKA Atlas) используют этот символ в своих идентификаторах (или как полный идентификатор).
Короче говоря, вы можете использовать $
всякий раз, когда захотите. (Переводчик не будет жаловаться.) Вопрос в том, когда вы хотите его использовать?
Я лично его не использую, но думаю, что его использование действительно. Я думаю, что MS AJAX использует его для обозначения того, что функция является псевдонимом для некоторого более подробного вызова.
Например:
var $get = function(id) { return document.getElementById(id); }
Это похоже на разумное соглашение.
Вы можете добавить некоторый закрытый флаг непосредственно перед оператором возврата выполнения метода, например,
abcCallback() {
// code
abcCallback.__executed__ = true;
}
Затем вы можете получить состояние выполнения, проверив abcCallback.__executed__
. Также не забывайте сбрасывать этот флаг всякий раз, когда вы хотите начать этот процесс.
RxJS является частью Angular.
Может быть, вы можете использовать его для создания объекта BehaviourSubject при выполнении обратного вызова.
После этого вы должны подписаться на «событие».
Сайт RxJS: https://rxjs-dev.firebaseapp.com/
Визуальные пояснения RxJS: https://rxmarbles.com/
Вы можете определить переменную вне функции обратного вызова и изменить ее в конце функции обратного вызова. Состояние этой переменной покажет, завершен ли обратный вызов.
let isCallbackExecuted = false;
let abcCallback = () => {
// do something
isCallbackExecuted = true;
};
Promise.resolve().then(abcCallback);
// isCallbackExecuted is true if callback is finished