【发布时间】:2019-01-12 08:45:35
【问题描述】:
我是react/nodejs/express/javascript的新手,遇到了以下问题:
我想获取一个数字,然后发布该数字 + 1,然后我想使用该数字创建一个新的 js 对象(newFreshId),我想添加它以将该事件添加到我的schedulerData。当我尝试运行代码时,我可以获取并发布到/api/num,但是.then(function(response) { 之后的所有内容似乎都没有运行。
我想按顺序执行此操作,所以我在每个任务后使用.then,这样我就不会遇到问题了。
我还尝试删除所有 .thens 以支持等待值更改的 while 循环。这也没有奏效。
代码:
客户:
this.newEvent = (schedulerData, slotId, slotName, start, end, type, item) => {
let newFreshId = 0;
let newEvent = {}
axios.get("/api/num").then(function(response) {
newFreshId = response.data[0] + 1;
// console.log(newFreshId);
}).then(function() {
axios.post("/api/num", {
id: newFreshId
}).then(function(response) {
console.log(response)
// handle success
newEvent = {
id: newFreshId,
title: this.state.title,
start: start,
end: end,
resourceId: slotId
};
schedulerData.addEvent(newEvent);
this.setState({
viewModel: schedulerData
});
// while(JSON.stringify(newEvent) === '{}'){
// console.log('waiting')
// }
console.log(newEvent)
schedulerData.addEvent(newEvent);
console.log(newEvent)
this.setState({
viewModel: schedulerData
});
})
})
};
服务器:
app.get('/api/num', function(req, res) {
//console.log(require('./number.json'))
var fs = require('fs')
fs.readFile('./number.json', {encoding: 'utf-8'}, function(err,data){
if (!err) {
//console.log('received data: ' + JSON.parse(data));
res.json(JSON.parse(data))
} else {
console.log(err);
}})
})
app.post('/api/num', function(req, res) {
var id = req.body.id
var fs = require('fs');
fs.writeFileSync("./number.json", "[ "+id+" ]", function(err) {
if(err) {
return console.log(err);
}
res.status(200)
})
})
感谢大家的帮助:)
【问题讨论】:
-
尝试添加
catch看看是否有任何错误。 -
这可能是一个愚蠢的问题,但我该把问题放在哪里呢?在服务器还是客户端?
-
在你的
.thens之后 -
没有错误...运行良好
-
有同样的问题。
标签: javascript node.js reactjs express axios