客户端的空对象。如何正确传递承诺值?
Empty object on Client side. How to correctly pass promises values?
我遇到了包含承诺值的对象以及在 Cilent 端访问它们的问题。我想访问这些值,但我收到的只是空对象。
服务器端代码如下:
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){
});
});
它是服务器端的控制台日志:
{ modular: Promise { [ '1.', '0111', '.', '1001', '0011' ] },
opposite: Promise { [ '1.', '1000', '.', '0110', '1100' ] },
objective: Promise { [ '1.', '1000', '.', '0110', '1101' ] } }
这是反应函数:
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
对象为空。
有什么建议么?我需要访问模块化的值,objective 和相反。
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){
});
});
我遇到了包含承诺值的对象以及在 Cilent 端访问它们的问题。我想访问这些值,但我收到的只是空对象。
服务器端代码如下:
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){
});
});
它是服务器端的控制台日志:
{ modular: Promise { [ '1.', '0111', '.', '1001', '0011' ] },
opposite: Promise { [ '1.', '1000', '.', '0110', '1100' ] },
objective: Promise { [ '1.', '1000', '.', '0110', '1101' ] } }
这是反应函数:
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
对象为空。 有什么建议么?我需要访问模块化的值,objective 和相反。
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){
});
});