gpt4 book ai didi

javascript - 回调不是函数: what am i doing wrong?

转载 作者:太空宇宙 更新时间:2023-11-04 02:53:14 24 4
gpt4 key购买 nike

我正在对 Redis 进行异步调用,并尝试使用回调来通知 async.js 查询已完成。我不断遇到错误,指出“回调不是函数”。

我在这里做错了什么?

            "check": function (redisListItem, dataElement, callback) {
let lookupKey = redisListItem.table + dataElement;
let virtualField = redisListItem.virtualName;

client.get(lookupKey, function (err, reply) {
if (err) {
return callback(err)
}
else {
session.virtual[virtualField] = reply;
callback(session);
}

});
}

对“check”的调用如下:

    "condition": function(R) {
var self = this;
async.series([
function(R){

/////////THE CALL TO CHECK ////////
R.check(List.redisTables.List.negEmail, self.customer.email)

}.bind(this,R),
function(R) {
R.when(this.virtual.negEmail === "true")
}.bind(this,R)
])
}

最佳答案

R.check(List.redisTables.List.negEmail, self.customer.email) 只有两个参数,第三个参数(应该是一个函数)丢失了,即未定义

R.check(List.redisTables.List.negEmail, self.customer.email, function(session) {
// do something when "check()" has completed
})

作为旁注,您应该坚持 Node 约定,并传递错误和数据

client.get(lookupKey, function (err, reply) {
if (err) {
return callback(err, null)
} else {
session.virtual[virtualField] = reply;
callback(null, session);
}
});

这样你就可以实际检查错误

R.check(List.redisTables.List.negEmail, self.customer.email, function(err, session) {

if (err) throw new Error('fail')

// do something when "check()" has completed
})

关于javascript - 回调不是函数: what am i doing wrong?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35073214/

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