我有一个功能:
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);)}
也没有解决它
答案 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总是可以使它成为一个全局数组。