$.each 内部的异步错误处理
Asynchron Errorhandling inside $.each
我在服务器端 Node.js 并且不知何故陷入了回调。我使用以下函数通过 mysql pkg:
在 Table 中插入数据
connection.query('INSERT INTO tableName SET ?', post, function(err, result)
{
if (err) {
if (err.code === 'ER_DUP_ENTRY')
{ }
else
{ throw err; }
}
});
我想记录有多少重复条目而不停止通过 $.each 调用上述函数的循环。
它说 here 我有 3 种可能性:抛出、回调和 EventEmitter。投掷是行不通的,因为这会停止一切。我尝试了回调,但因为我在 $.each 的回调中,所以我无法在上述范围内找到。我没有尝试使用静态 EventEmitter,因为我不知道如何 return 来自 $.each 选择器的任何值,所选数据除外。
如有任何建议,我们将不胜感激。
将所有内容嵌套在闭包中,并在回调中计算完成的查询,以便您知道最后一个查询何时完成:
(function(){
var errors = 0;
var started = 0;
var successful = 0;
$.each(..., function(){
started++;
connection.query('INSERT INTO tableName SET ?', post, function(err, result)
{
if (err) {
if (err.code === 'ER_DUP_ENTRY')
{ errors++; }
else
{ throw err; }
} else { successful++;}
if (started == successful + errors) {
// all done
console.log(errors + " errors occurred");
}
});
});
})();
我在服务器端 Node.js 并且不知何故陷入了回调。我使用以下函数通过 mysql pkg:
在 Table 中插入数据 connection.query('INSERT INTO tableName SET ?', post, function(err, result)
{
if (err) {
if (err.code === 'ER_DUP_ENTRY')
{ }
else
{ throw err; }
}
});
我想记录有多少重复条目而不停止通过 $.each 调用上述函数的循环。
它说 here 我有 3 种可能性:抛出、回调和 EventEmitter。投掷是行不通的,因为这会停止一切。我尝试了回调,但因为我在 $.each 的回调中,所以我无法在上述范围内找到。我没有尝试使用静态 EventEmitter,因为我不知道如何 return 来自 $.each 选择器的任何值,所选数据除外。
如有任何建议,我们将不胜感激。
将所有内容嵌套在闭包中,并在回调中计算完成的查询,以便您知道最后一个查询何时完成:
(function(){
var errors = 0;
var started = 0;
var successful = 0;
$.each(..., function(){
started++;
connection.query('INSERT INTO tableName SET ?', post, function(err, result)
{
if (err) {
if (err.code === 'ER_DUP_ENTRY')
{ errors++; }
else
{ throw err; }
} else { successful++;}
if (started == successful + errors) {
// all done
console.log(errors + " errors occurred");
}
});
});
})();