callbackify.js 417 B

123456789101112131415161718
  1. import utils from '../utils.js';
  2. const callbackify = (fn, reducer) => {
  3. return utils.isAsyncFn(fn)
  4. ? function (...args) {
  5. const cb = args.pop();
  6. fn.apply(this, args).then((value) => {
  7. try {
  8. reducer ? cb(null, ...reducer(value)) : cb(null, value);
  9. } catch (err) {
  10. cb(err);
  11. }
  12. }, cb);
  13. }
  14. : fn;
  15. };
  16. export default callbackify;