Как упростить обработку ошибок в тамейсе?
Я очень доволен tamejs, это делает мой код JavaScript намного понятнее. Но я все еще чувствую, что обработка ошибок немного скучна.
Смотрите код:
// callback should be callback(err, nextInt)
function inc(n, callback) {
setTimeout(function() {
callback(null, n+1);
}, 100);
}
await { inc(3, defer(var err, next));}
if(err) throw new Error(err); // !!! error handling
await { inc(8, defer(var err, next));}
if(err) throw new Error(err); // !!! error handling
await { inc(12, defer(var err, next));}
if(err) throw new Error(err); // !!! error handling
await { inc(39, defer(var err, next));}
if(err) throw new Error(err); // !!! error handling
Поскольку почти каждый асинхронный API имеет обратные вызовы, которые имеют error
в качестве первого параметра, мы должны получить его и сначала проверить.
Вы можете видеть, что в примере много строк обработки ошибок, что скучно.
Есть ли способ упростить это?
1 ответ
function asyncCheck(workFunction) {
await { workFunction(defer(var err, next)) };
if (err) throw new Error(err);
}
//Then use closures to define the work
asyncCheck(function (callback) { inc(2, callback}));
Я сам не пробовал tamejs, просто прочитал об этом, но, возможно, этот шаблон будет работать?