Ich bin neu in node.js und ich habe Code mit async.forEach() geschrieben. Etwas ist falsch Ich bekomme nicht meinen Fehler.Operation auf Array von Objekt mit async.forEach
async.forEach(payload.bookings,fun,function(err,res){
var data ;
if(err)
console.log(err);
if(res) {
data = res;
console.log(data);
}
});
function fun(booking,cb){
var dataToSave = {};
//service choosen by customer
var service_id = booking.serviceId;
dataToSave.serviceId = service_id;
var query = {
services : {$elemMatch : { serviceId : service_id } }
};
var projection = {
cellPhoneNumber :1,
countryCode:1,
services :1
};
var options = {};
Service.serviceProvider.getServiceProviders(query,projection,options,function(err,data){
if(err)
cb(err);
else{
if(data && data.length>0){
//getting list of SP which gives the service name given by customer
dataToSave.serviceProviderList = [];
for(var sp=0;sp<data.length;sp++){
var serviceProvider = {};
serviceProvider.id = data[sp]._id;
//searching in services array of one particular service id
for(var j=0;j<data[sp].services.length;j++){
if(data[sp].services[j].serviceId==service_id)
{
serviceProvider.serviceRate = data[sp].services[j].rate;
break;
}
}
dataToSave.serviceProviderList.push(serviceProvider);
}
cb(dataToSave);
}
else{
cb();
}
}
});
};
Ausgang:
{ serviceId: '578e0da7c8c4cfc807040852',
serviceProviderList:
[ { id: 578e18f6ed564791083c75ad, serviceRate: 200 },
{ id: 578e1996ed564791083c75b4, serviceRate: 200 } ] }
Erwartete Ausgabe:
{ serviceId: '578e0da7c8c4cfc807040852',
serviceProviderList:
[ { id: 578e18f6ed564791083c75ad, serviceRate: 200 },
{ id: 578e1996ed564791083c75b4, serviceRate: 200 } ] }
{ serviceId: '578dca50e93da81f0423f6b6',
serviceProviderList: [ { id: 578e18f6ed564791083c75ad, serviceRate: 100 } ] }
ich auf Prahlerei gesehen haben documentation.When ich es auf klicken Versuchen Out auf running.only hält es zeigt das Objekt, das ich gedruckt habe mit console.log()
Welche Version von Asynchron verwenden u? – Iceman
@Iceman "async": "^ 2.0.0-rc.6" –
Konnte '.forEach()' in den Dokumenten nicht finden, obwohl Sie es genau mit '.each()' Syntax schreiben. – Iceman