2017-12-18 2 views
0

약속 값이 포함 된 객체에 문제가 있고 Cilent 측에서 값을 액세스하는 데 문제가 있습니다. 값에 대한 액세스 권한을 갖고 싶지만 비어있는 객체 만 받았습니다. 기능 반응 여기에클라이언트쪽에 빈 개체가 있습니다. 약속 값을 올바르게 전달하는 방법은 무엇입니까?

{ modular: Promise { [ '1.', '0111', '.', '1001', '0011' ] }, 
    opposite: Promise { [ '1.', '1000', '.', '0110', '1100' ] }, 
    objective: Promise { [ '1.', '1000', '.', '0110', '1101' ] } } 

과 : 여기

서버 측에 코드입니다 :

router.get('/toExcess', function(req, res){ 
    console.log(req.query); 
    const response = logic.adder(req.query.a, req.query.b); 
    const convertToModular = logic.modularRecordExcess(response); 
    const convertToOpposite = logic.oppositeRecordExcess(response); 
    const convertToObjective = logic.objectiveRecordExcess(response); 
    convertToObjective.then(function (response) { 
    var add = { 
    modular: convertToModular, 
    opposite: convertToOpposite, 
    objective: convertToObjective, 
} 
console.log(add); 
res.send(add); 
}).catch(function(err){ 

}); 
}); 

하고 서버 측에 콘솔 로그의

showExcess(){ 
    document.querySelector('.input-wrapper').style.display = 'inline'; 
    RestClient.getExcess(this.state.augend, this.state.addend).then((response) 
    => {  
this.setState({ 
     isReady: true 
    }); 
     console.log(response); 
    }); 
} 

및 브라우저에서 consol.log 결과 : enter image description here

개체가 비어 있습니다. 제안 사항이 있으십니까? 모듈 형, 객관적, 반대의 가치에 액세스 할 수 있어야합니다.

+0

약속을 먼저 ​​확인하십시오. Resolve.all ([convertToModular, opposite, objective]). then (res.json); –

답변

0
router.get('/toExcess', function(req, res){ 
    console.log(req.query); 
    const response = logic.adder(req.query.a, req.query.b); 
    const convertToModular = logic.modularRecordExcess(response); 
    const convertToOpposite = logic.oppositeRecordExcess(response); 
    const convertToObjective = logic.objectiveRecordExcess(response); 
    Promise.all([convertToModular, convertToOpposite, convertToObjective]) 
    .then(function (response) { 
    var add = { 
     modular: response[0], 
     opposite: response[1], 
     objective: response[2], 
    } 
    console.log(add); 
    res.send(add); 
    //or you can pass res.json(response); 
    }) 
.catch(function(err){ 

}); 
}); 
+0

감사합니다. 그것은 작동합니다 :) – marta

관련 문제