Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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 在映射函数之后执行函数_Javascript_Angularjs_Asynchronous - Fatal编程技术网

Javascript 在映射函数之后执行函数

Javascript 在映射函数之后执行函数,javascript,angularjs,asynchronous,Javascript,Angularjs,Asynchronous,我有这个密码 $scope.items.map(function (item) { if(item.keywords.indexOf($scope.formData.keyword) != -1){ array.push(bono); } }) 当映射完成时,我需要对数组的所有元素执行一个函数。我该怎么做?我想把电话叠起来,但我不知道怎么做 谢谢试试这个: var array = []; $scope.items.map(function (item) { if

我有这个密码

$scope.items.map(function (item) {
   if(item.keywords.indexOf($scope.formData.keyword) != -1){
       array.push(bono);
   }
})
当映射完成时,我需要对数组的所有元素执行一个函数。我该怎么做?我想把电话叠起来,但我不知道怎么做

谢谢

试试这个:

var array = [];
$scope.items.map(function (item) {
   if(item.keywords.indexOf($scope.formData.keyword) != -1){
       array.push(item);
   }
});

myFunction(array);
Array.map()
文档:

像这样试试

$scope.items.map(function (item) {
   if(item.keywords.indexOf($scope.formData.keyword) != -1){
       array.push(bono);
   }
}).then(function(){}).then(function(){});

只要
$scope.items
是一个数组,如您在问题中所述,
数组.prototype.map()
是同步的-这意味着您只需将下一条语句放在该代码之后,它将在
.map()
完成处理后执行。

我们可以使用Promise.all()函数:

var promises = [obj1, obj2,objN].map(function(obj){
  return database.query('id').then(function(results){
     return results;
  })
})
Promise.all(promises).then(function(results) {
    console.log("Result",results);
})

把它放在下一行。它是有角度的,它是异步的:(这段代码中什么是异步的?什么类型的
$scope.items
.map
是否返回承诺?它没有回答我的问题。你为什么认为
.map()
这里的函数返回一个承诺?它是说我比。然后不是一个承诺function@DavidLuque所有这三个答案都是垃圾,如果你回答了我关于
项的问题,那会更有帮助。OP的问题看起来不像异步代码。为什么投票会被否决?@DavidLuque要澄清的是,这正是我的建议:
mapFinished
在这里没有任何意义,只需将您的下一个代码放在下一行。@zerkms我将mapFinished放在下面就是为了清楚。map()返回一些东西(数组)。@CristianSmocot这有什么意义?
。map()
总是返回一些东西。所以
如果(mapFinished)
检查始终为真。@CristianSmocot:只需删除代码的原始版本。它没有任何作用。谢谢,我认为它是异步的,我需要控制它。