我正在尝试遍历数组并在服务器端发送值。问题是服务器端每次都返回相同的结果。
let sms = {
division: "",
};
Promise.all(['division_one','division_two','division_three','division_four'].map(function(division) {
sms.division = division;
console.log(sms);
axios.post('http://localhost:3000/inbound', {
sms
})
.then(function (response) {
return response;
});
})).then(function(results) {
})
客户端结果:
{ division: 'division_one' }
{ division: 'division_two' }
{ division: 'division_three' }
{ division: 'division_four' }
服务器端结果:
{ sms: { division: '**division_four**' } }
::ffff:127.0.0.1 - - [29/Jan/2019:13:24:02 +0000] "POST /inbound HTTP/1.1" 200 36 "-" "axios/0.18.0"
{ sms: { division: '**division_four**' } }
::ffff:127.0.0.1 - - [29/Jan/2019:13:24:02 +0000] "POST /inbound HTTP/1.1" 200 36 "-" "axios/0.18.0"
{ sms: { division: '**division_four**' } }
::ffff:127.0.0.1 - - [29/Jan/2019:13:24:02 +0000] "POST /inbound HTTP/1.1" 200 36 "-" "axios/0.18.0"
{ sms: { division: '**division_four**' } }
::ffff:127.0.0.1 - - [29/Jan/2019:13:24:02 +0000] "POST /inbound HTTP/1.1" 200 36 "-" "axios/0.18.0"
预期成果
服务器端应显示所有分区:
{ sms: { division: '**division_one**' } }
::ffff:127.0.0.1 - - [29/Jan/2019:13:24:02 +0000] "POST /inbound HTTP/1.1" 200 36 "-" "axios/0.18.0"
{ sms: { division: '**division_two**' } }
::ffff:127.0.0.1 - - [29/Jan/2019:13:24:02 +0000] "POST /inbound HTTP/1.1" 200 36 "-" "axios/0.18.0"
{ sms: { division: '**division_three**' } }
::ffff:127.0.0.1 - - [29/Jan/2019:13:24:02 +0000] "POST /inbound HTTP/1.1" 200 36 "-" "axios/0.18.0"
{ sms: { division: '**division_four**' } }
::ffff:127.0.0.1 - - [29/Jan/2019:13:24:02 +0000] "POST /inbound HTTP/1.1" 200 36 "-" "axios/0.18.0"
变量sms
是一个对象,您正在处理map
函数中的引用。此外,还需要返回呼叫后Promise
。
Promise
.all([
'division_one',
'division_two',
'division_three',
'division_four'
].map(function(division) {
return axios.post('http://localhost:3000/inbound', {
division: division,
}
);
}))
.then(function(results) {
})
尝试在承诺中定义短信
Promise.all(['division_one','division_two','division_three','division_four'].map(function(division) {
let sms = {};
sms.division = division;
console.log(sms);
axios.post('http://localhost:3000/inbound', {
sms
})
.then(function (response) {
return response;
});
})).then(function(results) {
})