LINUX.ORG.RU

Как в асинхронную фунцкию добавить свои коды возврата ошибок?

 , ,


0

1

Как в своей асинхронной функции правильно добавить возможность добавления информации об ошибке - почему операция выполнена не успешно? В 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); // Нет исключения, операция прошла неуспешно, объект не возвращается, кода возврата нет
}

.

Ответ на: комментарий от EnterpriseMobility

тогда

операция прошла успешнообъект получен
операция прошла неуспешнообъект не получен

ya-betmen ★★★★★
()
Ответ на: комментарий от EnterpriseMobility

Это какбэ зависит от вашей логики. Любая ошибка, которая прилетает снизу, в какой-то момент, когда вы ее обработаете, ошибкой быть перестает. А дальше уже гонятся не ошибки, а статусы, как часть данных.

Vit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.