class method Try.these
Try.these(function...) → ?
-
function
(Function
) – A function that may throw an exception.
Accepts an arbitrary number of functions and returns the result of the first one that doesn't throw an error.
This method is deprecated.
More information
Try.these
provides a simple idiom for trying out blocks of code in
sequence. Such a sequence of attempts usually represents a downgrading
approach to obtaining a given feature.
In this example from Prototype's Ajax internals, we want to get an
XMLHttpRequest
object. Internet Explorer 6 and earlier, however, does not
provide it as a vanilla JavaScript object, and will throw an error if we
attempt a simple instantiation. Also, over time, its proprietary way
evolved, changing COM interface names.
Try.these
will try several ways in sequence, from the best (and,
theoretically, most widespread) one to the oldest and rarest way, returning
the result of the first successful function.
If none of the blocks succeeded, Try.these
will return undefined
, which
will cause the Ajax.getTransport
method in the example below to return
false
, provided as a fallback result value.
var Ajax = {
getTransport: function() {
return Try.these(
function() { return new XMLHttpRequest() },
function() { return new ActiveXObject('Msxml2.XMLHTTP') },
function() { return new ActiveXObject('Microsoft.XMLHTTP') }
) || false;
}
};