getValueSafe
getValueSafe: keep stack from bombing when searching object properties
by Nirvanachain
JavaScript
//Keeps the stack from bombing on an error.
function getValueSafe(obj, description, func) {
var val;
try {
val = func(obj);
}
catch (e) {
console.log('Error loading value:', description, e)
val = 'Error loading value';
}
console.log('val =',val);
return val;
}
var data = {
people: [
{
images: {
main: 'main.jpg',
alt: 'alt.jpg'
}
}
]
};
// Happy path
getValueSafe(data, 'image.main', function(obj) {
return obj.people[0].images.main;
});
// Search for property when path is invalid
getValueSafe(data, 'relationship', function(obj) {
return obj.relationship.name;
});