Я пишу много модулей, которые выглядят так:
function get(index, callback) {
if (cache[index] === null) {
request(index, callback); // Queries database to get data.
} else {
callback(cache[index]);
}
}
Примечание: это немного упрощенная версия моего фактического кода.
Этот обратный вызов либо вызывается в том же самом исполнении, либо через некоторое время. Это означает, что пользователи модуля не уверены, какой код запускается первым.
Мое замечание состоит в том, что такой модуль повторно задает некоторые проблемы многопоточности, которые ранее были решены с помощью механизма JavaScript.
Вопрос: следует ли использовать process.nextTick
или убедиться, что он безопасен для вызова обратного вызова вне модуля?