我正在尝试将product
传递给包含find()
匿名函数的.toArray()
函数,该函数同时包含error
和array
。不幸的是,整个find()
函数在迭代中运行,只有第一个值进入。如何将product
传递给callbacks
?
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);
}
});
}
答案 0 :(得分:0)
在此功能之前,我正在使用products
处理forEach()
,然后在其中进行回调。这是一个很大的麻烦。已处理products
并定期for
,现在可以正常使用。
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;
}