从函数返回数组-TypeError:回调不是函数

问题描述 投票:-1回答:2

我正在编写一个简单的js函数,以返回使用提取API提取的字符串数组。每当我尝试运行代码时,都会出现此错误:TypeError: callback is not a function

这是我的代码

function getFlavors(franchise, callback) {
    const fetch = require('node-fetch');
    let flavors= [];
    fetch('url', {
        method: 'POST',
        headers: {
            'Content-type': 'application/json'            
        },
        body: JSON.stringify({ "franchise": franchise })
    })
        .then(res => res.json())
        .then(json => {
            json.forEach(element => {
                flavors.push(element.flavor)
            });
            // console.log(flavors);
            callback(flavors);    <-- VALUES DISPLAYED ON CONSOLE
        })
        .catch(error => {
            console.log(error);
        })

}

let benJerrysFlavors = [];
getFlavors("ben&jerrys",benJerrysFlavors);

我能够在控制台上看到值,但是当尝试从函数返回数组时,出现回调错误

关于什么可能是问题的任何想法?

javascript arrays node.js callback fetch
2个回答
0
投票

应使用将数据传递给它的回调函数来调用。然后可以使用返回的数据更新数组:

let benJerrysFlavors = [];
getFlavors("ben&jerrys", (ret) => {
    benJerrysFlavors = ret;
});

0
投票

尝试更改为:

callback(flavors)

收件人:

callback.push(flavors)
© www.soinside.com 2019 - 2024. All rights reserved.