Как упростить обработку ошибок в тамейсе?

Я очень доволен 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, просто прочитал об этом, но, возможно, этот шаблон будет работать?

Другие вопросы по тегам