gpt4 book ai didi

javascript - 错误: Callback is not a function (nodejs)

转载 作者:行者123 更新时间:2023-12-03 06:26:55 27 4
gpt4 key购买 nike

当我执行代码时,我不断收到错误“TypeError:回调不是函数”。
这是相关代码:

exports.isVideo = function(tweetId, callback) {
client.get('statuses/show/' + tweetId, function(err, tweet, res){
if(tweet.extended_entities){
if(tweet.extended_entities.media[0].type === 'video'){
console.log('true');
callback(true);
} else {
console.log('false');
callback(false);
}
} else {
console.log('false');
callback(false);
}
});
}

这是在不同的文件中(我需要该文件顶部的第一个文件,这不是错误的原因):

ids.forEach(function(id){
console.log(id.twitterId);
twitterConverter.isVideo(id.twitterId, function(boolean){
if(boolean){
console.log('do something');
} else {
console.log('do nothing');
}
});
});

首先,请不要将其标记为重复,因为还有其他具有类似标题的帖子。我查了一下,原因一般是没有传递回调函数,或者传递的参数太多,这里不是这样的。

我对nodejs还没有那么有经验,所以也许我忽略了一些明显的东西,但我找不到这段代码有什么问题。

client.get() 来自this npm 包。也许错误与此有关?

如果您能在这里帮助我,我将非常高兴。

最佳答案

回调的调用者(在本例中是 client.get 方法)决定将哪些参数传递给回调。您需要声明您的回调以匹配 client.get 所说的它将传递给回调的内容。您可以将参数命名为您想要的任何名称(您使用的名称并不重要),但它们将按照 client.get 决定的顺序获取值。

在这种情况下,client.get 使用代码中的三个参数调用回调,如 function(err, tweet, res) 中所示。所以您的 回调需要是这样的:

    callback(null,null,true);

代码是:

    exports.isVideo = function(tweetId, callback) {
client.get('statuses/show/' + tweetId, function(err, tweet, res){
if(tweet.extended_entities){
if(tweet.extended_entities.media[0].type === 'video'){
console.log('true');
callback(null,null,true);

} else {
console.log('false');
callback(null,null,false);

}
} else {
console.log('false');
callback(null,null,false);

}
});
}

关于javascript - 错误: Callback is not a function (nodejs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38607942/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com