rambdax
Version:
Extended version of Rambda - a lightweight, faster alternative to Ramda
22 lines (19 loc) • 515 B
JavaScript
import { type } from './type.js'
export function tryCatchAsync(fn, fallback){
return (...inputs) =>
new Promise(resolve => {
fn(...inputs)
.then(resolve)
.catch(err => {
if (type(fallback) !== 'Function'){
return resolve(fallback)
}
if (type(fallback) !== 'Promise'){
return resolve(fallback(err, ...inputs))
}
fallback(err, ...inputs)
.then(resolve)
.catch(resolve)
})
})
}