ソースコード [github]を見ることができます:
// Return all the elements that pass a truth test.
// Delegates to **ECMAScript 5**'s native `filter` if available.
// Aliased as `select`.
_.filter = _.select = function(obj, iterator, context) {
var results = [];
if (obj == null) return results;
if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context);
each(obj, function(value, index, list) {
if (iterator.call(context, value, index, list)) results[results.length] = value;
});
return results;
};
簡単 _.filter
に言えば、同期であり、コールバック関数も同期することを期待しています(if (iterator.call(context, value, index, list))
)。
さらに、関数はネイティブの.filter
[MDN]関数に委譲します。これも同期的です。
コールバックを受け入れるすべての関数が非同期である必要はありません!