Как в своей асинхронной функции правильно добавить возможность добавления информации об ошибке - почему операция выполнена не успешно? В C# я бы определил бы собственные классы исключений. А в callback я могу передать вторым параметром или done : true/false (операция выполнена/не выполнена) или null (объект не найден).
self.myAsyncFunctionWithCallback(param1, param2, cb) {
   if(typeof cb !== 'function'){ return new Error('this is an async function and expects a callback'); }
   if (err) { return cb(err); } // Возникло исключение, возвращаем ее, нет разультата
   return cb(null, true); // Нет исключения, операция прошла успешно
   return cb(null, false); // Нет исключения, операция прошла неуспешно, кода возврата нет
   return cb(null, 0); // Нет исключения, операция прошла успешно, код возврата 0
   return cb(null, 1); // Нет исключения, операция прошла неуспешно, код возврата 1
   return cb(null, obj); // Нет исключения, операция прошла успешно, вернули обьект
   return cb(null, null); // Нет исключения, операция прошла неуспешно, объект не возвращается, кода возврата нет
}
.




