Files
react-native-devtools-frontend/node_modules/ramda/src/otherwise.js
T
Jack Franklin 8b9aa2fca6 Prefer eslint-mocha for linting .only in tests
DISABLE_THIRD_PARTY_CHECK=new npm module causes package-lock change

We can get rid of a custom script and use ESLint for these rules.

Additionally this means editors will highlight the issue in the editor.

Change-Id: I552b52e7f07b4e7430b3f685dbc3b5fad36ffff2
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2052167
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Jack Franklin <jacktfranklin@chromium.org>
2020-02-12 18:12:22 +00:00

39 lines
1.3 KiB
JavaScript

var _curry2 = /*#__PURE__*/require('./internal/_curry2');
var _assertPromise = /*#__PURE__*/require('./internal/_assertPromise');
/**
* Returns the result of applying the onFailure function to the value inside
* a failed promise. This is useful for handling rejected promises
* inside function compositions.
*
* @func
* @memberOf R
* @category Function
* @sig (e -> b) -> (Promise e a) -> (Promise e b)
* @sig (e -> (Promise f b)) -> (Promise e a) -> (Promise f b)
* @param {Function} onFailure 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(null, onFailure)`
* @see R.then
* @example
*
* var failedFetch = (id) => Promise.reject('bad ID');
* var useDefault = () => ({ firstName: 'Bob', lastName: 'Loblaw' })
*
* //recoverFromFailure :: String -> Promise ({firstName, lastName})
* var recoverFromFailure = R.pipe(
* failedFetch,
* R.otherwise(useDefault),
* R.then(R.pick(['firstName', 'lastName'])),
* );
* recoverFromFailure(12345).then(console.log)
*/
var otherwise = /*#__PURE__*/_curry2(function otherwise(f, p) {
_assertPromise('otherwise', p);
return p.then(null, f);
});
module.exports = otherwise;