No description, website, or topics provided.
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
example
lib
test
.gitignore
.travis.yml
README.md
index.js
package.json

README.md

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