使JS函数的返回值对其他函数可用

Making a JS function return available to other functions

本文关键字:函数 其他 返回值 JS      更新时间:2023-09-26

我有一个函数:

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对其他功能可用?到目前为止,如果我调用这个函数,然后log arrayOfPastUsers,它说它是未定义的。我希望能够访问数组或将其拉到另一个函数中,以便我可以根据另一个函数对其进行计算。

我试着添加return arrayOfPastUsers,没有帮助。我还试着加了一行:

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

简单的方法是在你的承诺的成功回调之外声明'arrayOfPastUsers',只是在里面分配它。这将使您可以在外部函数范围内的任何地方使用该变量。

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

将创建一个闭包

你可以让它成为一个全局数组