Conditional promise catch handler
Useful for handling only some types of errors and let the rest pass through.
import pCatchIf from 'p-catch-if'; // Error constructor getData().catch(pCatchIf(TimeoutError, () => retry(getData))); // Multiple error constructors getData().catch(pCatchIf([NetworkError, TimeoutError], () => retry(getData))); // Boolean getData().catch(pCatchIf(isProduction, error => recordError(error))); // Function const hasUnicornMessage = error => error.message.includes('unicorn'); getData().catch(pCatchIf(hasUnicornMessage, console.error)); // Promise-returning function const handler = error => sendError(error).then(checkResults); getData().catch(pCatchIf(handler, console.error)); // Can also be nested const validateMessage = error => error.message === 'Too many rainbows'; getData().catch(pCatchIf(UnicornError, pCatchIf(validateMessage, console.error)));pCatchIf(predicate, catchHandler)
Returns a thunk that returns a Promise
.
Type: Error.constructor
Error.constructor[]
boolean
Function -> Promise<boolean>|boolean
Specify either an error constructor, array of error constructors, boolean, or function that returns a promise for a boolean or a boolean.
If the function returns a promise, it's awaited.
Type: Function
Called if predicate
passes.
This is what you would normally pass to .catch()
.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4