Skip to main content
Module

x/ramda/then.js

:ram: Practical functional Javascript
Go to Latest
File
import _curry2 from './internal/_curry2';import _assertPromise from './internal/_assertPromise';

/** * Returns the result of applying the onSuccess function to the value inside * a successfully resolved promise. This is useful for working with promises * inside function compositions. * * @func * @memberOf R * @category Function * @sig (a -> b) -> (Promise e a) -> (Promise e b) * @sig (a -> (Promise e b)) -> (Promise e a) -> (Promise e b) * @param {Function} onSuccess The function to apply. Can return a value or a promise of a value. * @param {Promise} p * @return {Promise} The result of calling `p.then(onSuccess)` * @see R.otherwise * @example * * var makeQuery = (email) => ({ query: { email }}); * * //getMemberName :: String -> Promise ({firstName, lastName}) * var getMemberName = R.pipe( * makeQuery, * fetchMember, * R.then(R.pick(['firstName', 'lastName'])) * ); */var then = _curry2(function then(f, p) { _assertPromise('then', p);
return p.then(f);});export default then;