Javascript 从funcA到funcB获取值-承诺

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 =>

我试图从funcA到funcb求和,但是 我明白了

我试图通过给函数一个let值来访问funcA的和值,但和值不会传递给f2

我的错在哪里

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。