Add attempt
This commit is contained in:
22
snippets/attempt.md
Normal file
22
snippets/attempt.md
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
### attempt
|
||||||
|
|
||||||
|
Attempts to invoke a function with the provided arguments, returning either the result or the caught error object.
|
||||||
|
|
||||||
|
Use a `try... catch` block to return either the result of the function or an appropriate error.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const attempt = (fn, ...args) => {
|
||||||
|
try {
|
||||||
|
return fn(args);
|
||||||
|
} catch (e) {
|
||||||
|
return e instanceof Error ? e : new Error(e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
var elements = attempt(function(selector) {
|
||||||
|
return document.querySelectorAll(selector);
|
||||||
|
}, '>_>');
|
||||||
|
if (elements instanceof Error) elements = []; // elements = []
|
||||||
|
```
|
||||||
@ -2,6 +2,7 @@ anagrams:string,recursion
|
|||||||
arrayToHtmlList:browser,array
|
arrayToHtmlList:browser,array
|
||||||
ary:adapter,function
|
ary:adapter,function
|
||||||
atob:node,string,utility
|
atob:node,string,utility
|
||||||
|
attempt:function
|
||||||
average:math,array
|
average:math,array
|
||||||
averageBy:math,array,function
|
averageBy:math,array,function
|
||||||
bind:function,object
|
bind:function,object
|
||||||
|
|||||||
Reference in New Issue
Block a user