Javascript 中的 promise 和 @@iterator 的问题

Le *_*Anh 4 javascript debugging node.js promise

我是这个Promise对象的新手。当我运行下面的代码时NodeJS

function solution(num){
    return getData(num).then(getMax); 
}

function getData(num){
    return Promise.resolve({
        first: 80 * num,
        second: 30 * num
    });
}

function getMax(numbers){
    return Promise.resolve(Math.max(...numbers));
}

solution(10)
Run Code Online (Sandbox Code Playgroud)

我面对错误

(node:7814) UnhandledPromiseRejectionWarning: TypeError: Found non-callable @@iterator at getMax

你能帮我修一下吗?谢谢

ash*_*ngh 5

你正在做的...numbers这预计numbers是迭代的,但在你的情况下,它是对象

尝试使它成为一个数组(或任何可迭代的),它应该可以工作

function solution(num){
    return getData(num).then(getMax); 
}


function getData(num){
    return Promise.resolve([80 * num, 30 * num]);
}

function getMax(numbers){
    return Promise.resolve(Math.max(...numbers));
}

solution(10).then(console.log)
Run Code Online (Sandbox Code Playgroud)

如果您想修复原始代码,请阅读此评论