Javascript TypeError:无法读取未定义的属性“then”。尝试运行updatefirst函数时出现此错误
我正在尝试运行updatefirst函数,但一次又一次地出现相同的错误,即使我在get_plo_amount中将预定义的值传递给resolve函数,console.logresult行仍会运行,这表明在获取数据时没有问题。我不知道我做错了什么:。任何帮助都将不胜感激。谢谢Javascript TypeError:无法读取未定义的属性“then”。尝试运行updatefirst函数时出现此错误,javascript,node.js,mongodb,asynchronous,promise,Javascript,Node.js,Mongodb,Asynchronous,Promise,我正在尝试运行updatefirst函数,但一次又一次地出现相同的错误,即使我在get_plo_amount中将预定义的值传递给resolve函数,console.logresult行仍会运行,这表明在获取数据时没有问题。我不知道我做错了什么:。任何帮助都将不胜感激。谢谢 const get_plo_amount = function(p){ plo.findOne({phone : p}).then((result) => { console.log(result
const get_plo_amount = function(p){
plo.findOne({phone : p}).then((result) => {
console.log(result) //this line is running
return new Promise((resolve,reject) => {
resolve(result.daily_amount)
})
}).catch((e) => {
console.log("catch")
return new Promise((resolve,reject) => {
reject(e)
})
})
}
//updatefirst
const updatefirst = function(plo,date){
driver.find({associated_plo : plo}).then((result) => {
//console.log(result)//delete this
get_plo_amount(plo).then((amount) => {
console.log(amount)
var arr
for(i=0;i<result.length;i++){
var pdue = parseInt(result[i].balance) + amount
var d_obj = {
driver : result[i].name,
phone : result[i].phone,
auto_number : result[i].auto_number,
amount : pdue,
}
// console.log(d_obj)//delete this
arr[i] = d_obj
}
const obj = {
associated_plo : plo,
date : date,
earning : "0",
payments : arr
}
const t = new transactions(obj)
t.save().then(() => {
return "success"
}).catch((e) => {
return e
})
}).catch((e) => {
console.log(e)
return e
})
}).catch((e) => {
console.log(e)
return e
})
}
你应该回报一个承诺,让这个方法起作用。 尝试如下方式更新您的函数: const get\u plo\u amount=functionp{ 返回plo.findOne{phone:p}。然后返回结果=>{ console.logresult//此行正在运行 返回新的PromiseSolve,拒绝=>{ resolveresult.daily_金额 } }.catch=>{ 控制台.日志捕获 返回新的PromiseSolve,拒绝=>{ 拒绝 } } } 2更多变化 您可以返回result.daily_金额,而无需创建其他承诺 捕获物中的承诺是拒绝,因此您不妨删除捕获物 const get\u plo\u amount=functionp{ 返回plo.findOne{phone:p}。然后返回结果=>{ console.logresult//此行正在运行 结果:每天的金额; }; }
你能在问题中加上整个错误信息吗?您可以编辑问题以添加详细信息。非常感谢!