gpt4 book ai didi

javascript - 异步类型错误 : cb is not a function

转载 作者:行者123 更新时间:2023-11-30 15:23:53 32 4
gpt4 key购买 nike

我创建了以下方法来帮助我找到一个项目并更新另一个具有特定值的对象属性,如下所示:

  mergeAinBbyAttr: function(a, b, attr, val, cb) {
async.forEach(a, function(itemA, cb) {
async.forEach(b, function(itemB, cb) {
if (itemA[attr] == itemB[attr]) {
itemB[val] = itemA[val];
}
cb(null, itemB);
},
function(e, result) {
cb(e, result);
});
},
function(e, result) {
cb(e, result);
});
}

问题是我得到:

TypeError: cb is not a function

在最后一个 cb(e, result); 中。我不得不承认我有点脑残,答案一定很简单。

谢谢!

最佳答案

不能保证 cb 会是一个函数。有人可以传递他们想要的任何东西,也可以什么都不传递(在这种情况下,cb 将是 undefined)。

如果你相信你调用这个函数的代码是 cb 保证是一个函数,那么可以添加一个 assert(typeof cb === 'function') ;mergeAinBbyAttr 的开头。 (您可能需要在文件顶部添加 const assert = require('assert');。)

如果这是其他人可以调用的库代码,或者如果您不能保证接收到 cb 的函数,请添加一些类型检查:

if (typeof cb !== 'function') {
// Do something here: Throw an error, set `cb` to a no-op function, whatever
}

关于javascript - 异步类型错误 : cb is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43285154/

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