从funcA到funcB获得价值-承诺

时间:2020-11-08 21:09:37

标签: javascript promise

我正在尝试将值sumfuncAfuncb,但是 我得到NaN

我试图通过给函数赋予let值来访问sum中的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))

1 个答案:

答案 0 :(得分:3)

您的f2函数将“和”(可能是f1返回的Promise的输出)作为参数-但在您的示例中,您未提供它。

您已经完成了大部分“艰苦的工作”,您只需要兑现承诺-您可以这样做:

f1([[1,6,3,9],[6,12,5,21],[4,11,23,1]])
  .then(f2)
  .then((x) => console.log(x))