src/index.js
function lowChain(_, array, save) {
  var chain = _.chain(array);

  _.functionsIn(chain).forEach(function (method) {
    chain[method] = _.flow(chain[method], function (arg) {
      var v = void 0;
      if (arg) {
        v = _.isFunction(arg.value) ? arg.value() : arg;
      }

      var s = save();

      if (s) return s.then(function () {
        return Promise.resolve(v);
      });
      return v;
    });
  });

  return chain;
}
function lowChain(_, array, save) {
  var chain = _.chain(array);

  _.functionsIn(chain).forEach(function (method) {
    chain[method] = _.flow(chain[method], function (arg) {
      var v = void 0;
      if (arg) {
        v = _.isFunction(arg.value) ? arg.value() : arg;
      }

      var s = save();

      if (s) return s.then(function () {
        return Promise.resolve(v);
      });
      return v;
    });
  });

  return chain;
}
function lowChain ( _ , array , save ) { var chain = _ . chain ( array ) ; _ . functionsIn ( chain ) . forEach ( function ( method ) { chain [ method ] = _ . flow ( chain [ method ] , function ( arg ) { var v = void 0 ; if ( arg ) { v = _ . isFunction ( arg . value ) ? arg . value ( ) : arg ; } var s = save ( ) ; if ( s ) return s . then ( function ( ) { return Promise . resolve ( v ) ; } ) ; return v ; } ) ; } ) ; return chain ; }
Returns a lodash chain that calls .value() automatically after the first .method()  It also returns a promise or value  For example: lowChain(_, array, save).method()  is the same as: _.chain(array).method().value()
Returns a lodash chain that calls . value () automatically after the first . method () It also returns a promise or value For example : lowChain ( _ array save ) . method () is the same as : _ . chain ( array ) . method () . value ()