Javascript 将变量传递给anon函数/回调函数
我正在尝试将Javascript 将变量传递给anon函数/回调函数,javascript,callback,anonymous-function,Javascript,Callback,Anonymous Function,我正在尝试将product传递到find()函数中,该函数包含一个.toArray()匿名函数,该函数同时包含错误和数组。不幸的是,整个find()函数在迭代中运行,只有第一个值进入。如何将产品传递给回调 var find = function(product,callbacks){ foos.find({ "foo": product.bars, }).toArray(function (error, array) { if(error){
product
传递到find()
函数中,该函数包含一个.toArray()
匿名函数,该函数同时包含错误
和数组
。不幸的是,整个find()
函数在迭代中运行,只有第一个值进入。如何将产品
传递给回调
var find = function(product,callbacks){
foos.find({
"foo": product.bars,
}).toArray(function (error, array) {
if(error){
callbacks.error(product,error);
} else if (array.length == 0) {
callbacks.none(product);
} else {
callbacks.exists(product);
}
});
}
在此函数之前,我使用
forEach()
处理产品
,然后在其中的回调中运行此函数。这是个大麻烦。使用常规的for
处理产品
,现在可以使用了
旧代码
新代码
我不太明白这个问题。你的代码看起来应该可以工作。你能给我们看看那些
find
和toArray
函数吗?你使用的是公共库吗?不清楚你在做什么,因为它取决于foos.find
的规范(它不像jQuery的find
方法)它的返回值toArray
方法所做的一切
var products = function(data,callback){
products.forEach(function(product){
insert.product_id = product.id;
var variants = product.variants;
variants.forEach(function(variant){
insert.sku = variant.sku;
insert.variant_id = variant.id;
return callback(insert);
});
});
}
var products = function(data){
var insert = [];
var products = data.products;
for(var pKey in products){
var product = products[pKey];
var variants = product.variants;
var set = {}
set.product_id = product.id;
for(var vKey in variants){
var variant = variants[vKey];
set.sku = variant.sku;
set.variant_id = variant.id;
insert.push(set);
}
}
return insert;
}