我正在编写一个简单的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);
我能够在控制台上看到值,但是当尝试从函数返回数组时,出现回调错误
关于什么可能是问题的任何想法?
应使用将数据传递给它的回调函数来调用。然后可以使用返回的数据更新数组:
let benJerrysFlavors = [];
getFlavors("ben&jerrys", (ret) => {
benJerrysFlavors = ret;
});
尝试更改为:
callback(flavors)
收件人:
callback.push(flavors)