Javascript 从funcA到funcB获取值-承诺
我试图从funcA到funcb求和,但是 我明白了 我试图通过给函数一个let值来访问funcA的和值,但和值不会传递给f2 我的错在哪里Javascript 从funcA到funcB获取值-承诺,javascript,promise,Javascript,Promise,我试图从funcA到funcb求和,但是 我明白了 我试图通过给函数一个let值来访问funcA的和值,但和值不会传递给f2 我的错在哪里 let f1 = function funcA(arr) { let prom = new Promise(resolve =>{ let sum = 0 arr.map(x => { x.forEach(num =>
let f1 = function funcA(arr)
{
let prom = new Promise(resolve =>{
let sum = 0
arr.map(x =>
{
x.forEach(num =>
{
sum += num
})
})
setTimeout( () => resolve(sum) ,2000 )
})
return prom
}
f1([[1,6,3,9],[6,12,5,21],[4,11,23,1]]).then(x => console.log(x))
let f2 = function funcB(sum)
{
let prom = new Promise(resolve => {
let dubSUm = sum * 2
setTimeout( () => resolve(dubSUm), 3000 )
})
return prom
}
f2().then(x => console.log(x))
您的f2函数将可能作为f1返回的承诺的输出的和作为参数,但在您的示例中,您没有提供它
你已经完成了大部分艰苦的工作,你只需要把承诺连成一条龙——你可以这样做:
f1([[1,6,3,9],[6,12,5,21],[4,11,23,1]])
.then(f2)
.then((x) => console.log(x))
但是我无法将funcB函数f1[[1,6,3,9],[6,12,5,21],[4,11,23,1]]中的和值传递给f2。thenx=>console.logx.thenf2=>f2=函数funcBsum{let prom=new Promiseresolve=>{let dubSum=sum*2 setTimeout=>resolveddubsum,2000}返回prom}我不确定您在该代码中尝试做什么。但是我可以保证,如果你的问题中定义了f1和f2,那么我的答案中显示的代码就可以工作了,并且按照你的想法记录204。