我正在尝试更改回调函数中变量的值。
db.collection("some_collection").find().toArray(function(err, arrayResult){
var myArrayResult = arrayResult;
some_asynchronous_call(param1, param2, successCallback, failureCallback);
function successCallback() {
myArrayResult.reverse();
processResults();
}
function failurCallback() {
processResults();
}
function processResults(){
//Do some processing on myArrayResult array
}
}
所以基本上我需要访问successCallback和failureCallback函数中的变量myArrayResult
。如果异步调用成功,那么我需要反转数组。但是在这两种情况下,processResults都需要在数组上运行。
答案 0 :(得分:0)
由于successCallback
,failureCallback
,processResults
是clousre函数,因此数组myArrayResult
应该在这些函数中可用。
你可以这样做,使数组myArrayResult
可用于successCallback和failureCallback。
db.collection("some_collection").find().toArray(function(err, arrayResult){
var myArrayResult = arrayResult;
some_asynchronous_call(param1, param2, function(){successCallback(myArrayResult)}, function(){failureCallback(myArrayResult)});
function successCallback(arraydata) {
arraydata.reverse();
processResults(arraydata);
}
function failurCallback(arraydata) {
processResults(arraydata);
}
processResults(arraydata){
// do processing on arraydata
res.end(JSON.stringify({data: arraydata}));
}
}