2017-12-06 1 views
0

내 dao에서 내 서비스로 콜백을 받고 있으며 내 서비스에서 내 DAO로 보낼 개체 목록을 반복했습니다.콜백이 내부에서 작동하지 않습니다. async.foreachof

var dao = require('./dao'); 
var async = require('async'); 

exports.addUser = function(obj,callback) { 
    async.forEachOf(obj,function(value,key,callback){ 
     dao.addUser(value,function(data){ 
      callback(data); 
     }) 
    }) 
} 

이 콜백 내 제어 계층 않을 것입니다 내 서비스 코드

제어 층 i는 브라우저

답변

1

에 데이터를 다시 보낼 필요가

var express = require('express'); 
var app = express(); 
var service = require('./service'); 

app.use(express.urlencoded({ extended: false })); 
app.use(express.json()); 

app.post('/addPerson',function(req,res){ 
    var obj = req.body; 
    console.log(obj); 
    console.log("......",obj.name); 
    console.log("......",obj.age); 
    service.addUser(obj,function(data) { 
     console.log("---->",data); 
     res.json(data); 
    }) 
}) 

var server = app.listen(8080,function(){}); 

기존 코드에는 두 가지 문제점이 있습니다. 1. callback을 참조하여 asyn.forEachOf의 callback을 호출합니다. 2. 원래의 콜백을 호출하려고합니다 (인턴은 res.json(data)). 여기서 당신은 불가능한 다중 응답을 보내려고합니다.

어쨌든, 난 당신이 타밀어 추측 대신

exports.addUser = function(obj,callback) { 
    async.mapValues(obj,function(value,key,cb){ 
     dao.addUser(value,function(data){ 
      cb(null, data); 
     }) 
     }, function(err, result) { 
      // result is now a map of results for each key 
      callback(result); 
     }); 
} 
+0

Muthukumar migavum nandri을 async.mapValues를 사용해보십시오! 고마워, 대단히, 너는 내 엉덩이를 구했다 !!!!!!! – Grijan

+0

Magizhchi :) ... – Muthukumar

+0

형제 내가 mapvalues ​​대신 foreach를 사용할 수없는 이유를 알 수 있습니까? – Grijan

관련 문제