javascript - Javascript中promise和@@iterator的问题

标签 javascript node.js debugging 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)

我面临错误

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



你能帮我修一下吗?
谢谢

最佳答案

你在做...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)

请阅读 comment如果你想修复你的原始代码

关于javascript - Javascript中promise和@@iterator的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61995206/

相关文章:

node.js - Protractor 在 Centos 上打开 Chrome 驱动程序超时

javascript - 将导入的函数分配为类方法?

node.js - 在 Q 中记录所有拒绝的 promise

javascript - 遍历 TinyMCE 中当前节点的子节点

node.js - 无法使用 npm-postgres 发布 postgres 客户端

java - 在 Intellij-Idea 调试器中转储一个巨大的数组

android - 如何使用 Eclipse 在 Android 上调试 C++ 代码?

debugging - OpenCL 中错误代码的 perror() 等价物是什么?

javascript - Material Design Lite 插件正则表达式 javascript

javascript - 无法在 Controller 内的 js 对象中获取数组的大小