1

私は 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

errorほぼすべての非同期 API には最初のパラメーターとしてa を持つコールバックがあるため、最初にそれを取得して確認する必要があります。

サンプルには退屈なエラー処理行がたくさんあることがわかります。

単純化する方法はありますか?

4

1 に答える 1

0
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 を試したことがなく、それについて読んだだけですが、おそらくこのパターンは機能しますか?

于 2012-05-19T16:21:50.280 に答える