0

私はチョイスでfunc() reject直接ではなく、からのエラーを保持したい、onError()

私が使用する ように指示したい場合は、常に許可し、func() resolve後で返す結果を決定する前にyield func()
onError()throw ..;

直行するかしないかのfunc() reject後で決めることができるより良いアイデアを考えているyield func()onError()

co(function* () {
  yield func();
  // if reject catch here, not direct to onError 


  yield func();
  // if reject don't catch here just direct to onError

}).then(function (response) {
  response = JSON.stringify(response);
  res.send(response);
}, function (err) {
  onError(err);
});


// ...
func: function() {
  return new Promise(function (resolve, reject){
    ...
    reject();
  });
},
4

1 に答える 1

1

coサポートtry/catch:

co(function* () {
  try{
      yield func();
  }
  catch {
     // if reject catch here, not direct to onError 
  }




  yield func();
  // if reject don't catch here just direct to onError

}).then(function (response) {
  response = JSON.stringify(response);
  res.send(response);
}, function (err) {
  onError(err);
});

ドキュメントを参照してください: https://www.npmjs.com/package/co#examples

于 2016-03-22T05:32:22.463 に答える