Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有些人担心Underline.js中的函数是异步的还是同步的_Javascript_Asynchronous_Underscore.js - Fatal编程技术网

Javascript 有些人担心Underline.js中的函数是异步的还是同步的

Javascript 有些人担心Underline.js中的函数是异步的还是同步的,javascript,asynchronous,underscore.js,Javascript,Asynchronous,Underscore.js,我一直在写这样的代码,它工作得很好 var result = _.filter(array, function(item){return item[key] === k;}); ... // logic using the variable result 但今天我突然意识到这在技术上可能是错误的,因为过滤器可以异步运行,并且结果在过滤器行下面的代码中不可用 过滤器功能是否以同步方式实现?或者我必须记住过滤函数是异步运行的吗 提前谢谢 您可以看看: 长话短说:过滤器是同步的,并且期望回调函数也是

我一直在写这样的代码,它工作得很好

var result = _.filter(array, function(item){return item[key] === k;});
... // logic using the variable result
但今天我突然意识到这在技术上可能是错误的,因为过滤器可以异步运行,并且结果在过滤器行下面的代码中不可用

过滤器功能是否以同步方式实现?或者我必须记住过滤函数是异步运行的吗


提前谢谢

您可以看看:

长话短说:
过滤器是同步的,并且期望回调函数也是同步的(
if(iterator.call(上下文、值、索引、列表))

更重要的是,函数委托给本机函数,本机函数也是同步的


不是每个接受回调的函数都必须是异步的

// 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;
};