memeda

More graceful callback

npm install memeda
2 downloads in the last week
9 downloads in the last month

Memeda / 体贴的回调函数调用

API设计中,尤其是中间层调用,常常要写这么大一段代码:

var api = function (param, callback) {
  param.name = 'some name';
  async(param, function (err, data) {
    if (err) {
      return callback(err);
    }
    // 对返回结果进行加工
    var ret = data.toString();
    callback(null, ret);
  });
};

在社区,异常通过回调函数的第一个参数传递,已经是一个共识。但是面对到处都是的:

if (err) {
  return callback(err);
}

有时候还是会心烦。那么更语义的API来了:

var failing = require('memeda').failing;

var api = function (param, callback) {
  param.name = 'some name';
  async(param, failing(callback).passing(function (data) {
    // 对返回结果进行加工
    var ret = data.toString();
    callback(null, ret);
  });
};

或者更简单:

async(param, memeda(callback, function (data) {
  // 对返回结果进行加工
  var ret = data.toString();
  callback(null, ret);
});

备注

  • failingpassing总是成对出现

License

The MIT License

npm loves you