下面我有一些示例代码,描述了我想要完成的另一项任务。
在示例代码中,我有一个名为outer_func(multiplier)
的辅助函数,我将从另一个模块调用。该辅助函数接收单个参数multiplier
。
然而,在使用此参数之前,我需要异步获取数据点数组。此函数不需要使用乘法器,在收到数组之前我无法调用后续函数。所以我想知道如何最好地将乘数传递给嵌套在.then
get_array()
回调中的函数。
var fn2 = function asyncMultiplyBy2(v){ // sample async action
return new Promise(resolve => setTimeout(() => resolve(v * 2), 100));
}
var fn3 = function asyncMultiplyBy3(v, w /*I want to pass multiplier here*/){ // sample async action
return new Promise(resolve => setTimeout(() => resolve(v * w), 100));
}
function get_array() {
return new Promise(resolve => setTimeout(() => resolve([1, 2, 3, 4, 5]), 100));
}
function outer_func(multiplier) {
get_array().then(function(array) {
var actions = array.map(fn2);
var results = Promise.all(actions);
results.then(function(newArray) {
var finalActions = newArray.map(fn3);
var finalResults = Promise.all(finalActions);
console.log(multiplier) //undefined, but I would like to use this variable here
finalResults.then(function(finalArray) {
console.log(finalArray);
})
})
})
}
outer_func(3);
编辑:
我在fn3
添加了一条评论,要求我传递乘数。