我有一些数据需要查询以找到最佳匹配。所以我在一个函数内部有这个,它被传递el
(数据)。
function match(el) {
return el.find('link:regex(type,application\\/(atom|rss)\\+xml)').attr('href')
|| el.find('meta[name="msapplication-task"]').attr('content').match(/action-uri=(.*?);/)[1]
|| [another query]
|| [another query]
|| [last resort query]
}
使用||
操作符的问题是,如果任何一个查询导致错误,操作将退出,之后的查询将不匹配。例如,如果没有找到值,第二个查询可能会失败,因为不会有match
on 方法。undefined
我目前已将此函数调用包装在一个try
语句中以捕获这些错误,但这并不能解决我的问题。我需要捕获每个查询的错误,或者其他允许运行其余查询的错误。
我正在寻找一种优雅的解决方案来针对这些数据运行一组查询。第一个要匹配的查询应该是返回值。