gpt4 book ai didi

javascript - 异步 .eachLimit 回调错误未调用

转载 作者:行者123 更新时间:2023-12-03 06:46:33 25 4
gpt4 key购买 nike

我的 node.js 项目中包含以下代码。

async.eachLimit(dbresult, 1, function (record, callback) {
var json = JSON.stringify(record)
var form = new FormData()
form.append('data', json)
form.submit(cfg.server + '/external/api', function (err, res) {
if (err) {
callback(err)
}
if (res.statusCode === 200) {
connection.query('UPDATE selected_photos set synced = 1 WHERE selected_id = "' + record.selected_id + '"', function (err, result) {
if (err) {
console.log(err)
callback(err)
} else {
callback()
}
})
} else {
console.log(res.statusCode)
return callback(err)
}
})
}, function (err) {
// if any of the file processing produced an error, err would equal that error
if (err) {
// One of the iterations produced an error.
// All processing will now stop.
console.log('A share failed to process. Try rerunning the Offline Sync')
process.exit(0)
} else {
console.log('All files have been processed successfully')
process.exit(0)
}
})
}

res.statusCode = 302 所以这应该会出错。但错误回调永远不会被触发。它如何让它触发错误,以便它停止eachLimit并显示

console.log('A share failed to process. Try rerunning the Offline Sync')

最佳答案

你有:

如果(错误){

在表单提交处理程序的第一行。之后,您确定没有错误。因此,当您检查响应 statusCode 并尝试回调时出现错误时,您正在回调空值。这就是为什么在最终回调函数中检查它时不会出现错误的原因。

从表单提交处理程序回调时尝试创建 new Error('Status not OK: ' + res.statusCode)

关于javascript - 异步 .eachLimit 回调错误未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37714421/

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