제 가난한 영어에 대한 첫 사과.async와 sequelize하고 방법을 찾으십시오
find 메소드 외부에서 updated.vsr.selectedvalues에 액세스 할 수 없습니다.
단계 본인은 차량 어레이가 그들의 연관된 vsrdetails)
1
따랐다. 2) 기존 차량 JSON에 하나 이상의 요소 (contractor_name)를 추가하려고합니다. 3) 이것을 위해 나는 새로운 배열을 형성하고 응답에 보냅니다.내가 찾은 방법 이외의 업데이트 된 vehicle.vsr 세부 정보에 액세스 할 수 없다는 사실에 의문이 생깁니다.
async.forEach(vehicles, function(vehicle, callback){
newvehicles.push(vehicle.selectedValues)
Contractor.find({ 'where': { 'id': (vehicle.vsr.contractor_id).toString().trim() } }).success(function(contractor){
console.log(vehicle.vsr.contractor_id +"======"+ contractor.name + "========"+ vehicle.vsr.project_id)
var vsrnew = Array()
console.log("***************************************************")
console.log(newvehicles)
vehicle.vsr.selectedValues["contractor_name"] = contractor.name
vsrnew.push(vehicle.vsr.selectedValues)
newvehicles["vsr"] = vehicle.vsr.selectedValues
})
callback()
},function(){
return res.json({ "total": total, "start": start, "limit": limit, "items": newvehicles })
})
양해 해 주셔서 감사합니다.
업데이트 해 주셔서 감사합니다. 세미콜론을 무시하십시오. 알았어 –
안녕하세요 @ 클레이, 위의 질문에. 레코드를 가져 와서 동일한 오브젝트에 contractor_name이라는 새 요소를 추가하고 새 배열로 푸시합니다. 여기까지 모든 것이 잘 작동합니다. 이제 내 관심사는 새로운 어레이가 차량 목록으로 형성되지 않는다는 것입니다. bcoz는 비동기 프로세스입니다. 이것을 피하는 방법, 정렬 된 순서대로 검색된 차량은 계약자를 가져오고 싶습니다. –
당신이 넣고있는 객체/배열이'async.each' 호출 위에 정의되어 있는지 확인해야합니다. 그렇지 않으면 스코프가'each' 함수 내에 있고 스코프가 사라지면 스코프가 사라집니다. 원하는 모든 요소가 있으면'async.each'의 끝에서 정렬해야 할 수도 있습니다. – clay