我有三层回调,就像这样:
:
app.post('/', (req, res) => {
var filename = `outputs/${Date.now()}_output.json`;
let trainInput = req.files.trainInput;
let trainOutput = req.files.trainInput;
let testInput = req.files.trainInput;
//first
trainInput.mv(`inputs/${req.body.caseName}/train_input.csv`, function (err) {
if (err) return res.status(500).send(err);
//second
trainOutput.mv(`inputs/${req.body.caseName}/train_output.csv`, function (err) {
if (err) return res.status(500).send(err);
//third
testInput.mv(`inputs/${req.body.caseName}/test_input.csv`, function (err) {
if (err) return res.status(500).send(err);
res.send('success');
});
});
});
});
在这种情况下,只有3个文件上传。在另一种情况下,我有超过10个文件上传,这会导致10层回调。我知道这是由于JavaScript异步引起的。
对于这种情况,有没有办法编写更优雅的代码?因为当有10层回调时,代码看起来很奇怪。
谢谢。
Promise
和async
/await
来整理这个问题。 - Anders Marzi Tornblad