使JS函数返回可用于其他函数

时间:2016-09-25 13:13:05

标签: javascript arrays promise return

我有一个功能:

removePastUsersFromArray().then(function(promises){
      var arrayOfPastUsers = [];
      for(var i = 0; i < promises.length; i++){
        for(var j = 0; j < promises[i].length; j++){
            arrayOfPastUsers.push(promises[i][j]);
        }
     }
})

如何让arrayOfPastUsers可用于其他功能?到目前为止,如果我调用此函数然后记录arrayOfPastUsers,它表示它未定义。我希望能够访问该数组或将其拉入另一个函数,以便我可以对另一个函数进行评估。

我尝试添加return arrayOfPastUsers并没有帮助。我也尝试添加一行:

return new Promise(function(resolve, reject){ resolve(arrayOfPastUsers);)}也没有解决它

3 个答案:

答案 0 :(得分:1)

简单的方法是声明“arrayOfPastUsers”&#39;成功回调你的承诺并将其分配到其中。这将使您在外部函数的范围内随处使用该变量。

答案 1 :(得分:0)

function container(removePastUsersFromArray){
  var arrayOfPastUsers = [];
  removePastUsersFromArray().then(function(promises){

      for(var i = 0; i < promises.length; i++){
        for(var j = 0; j < promises[i].length; j++){
            arrayOfPastUsers.push(promises[i][j]);
        }
     }
  })
  return arrayOfPastUsers ;
}

var myArr= new container(removePastUsersFromArray);

//myArr will be full **after** promise fulfill

这将创建一个闭包。

答案 2 :(得分:0)

U总是可以使它成为一个全局数组。