- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试这段代码:
function addNewCars(req, res) {
let CarsList = req.body;
carListParsing(carList)
.then(function () {
console.log('OK');
res.status(200).send('OK');
}).catch(function (err) {
res.status(200).send(err);
});
}
function carListParsing (data) {
return new Promise(function (resolve, reject) {
let newCar = {};
newCar.name = data.car_name;
validateCar(newCar).then(function (data) {
console.log('validate result1: ', data); //this line doesn't show
//if I get validation result, I can use next function createCat()
resolve(data);
}).catch(function (err) {
reject(err);
});
});
}
function validateCar(data) {
db.cars.findAll({where: {name: data.name}}).then(function (org) {
if (org.length < 1) {
console.log('validate1: OK'); //work
return data;
} else {
console.log('validate2: already exist'); //work
return new Error('The ' + data.name + ' car is already exist.');
}
}).catch(function (err) {
return err;
});
}
我需要验证数据=>汽车名称,如果汽车不存在,则创建新汽车并执行下一个逻辑,例如停放汽车。如果找到汽车,则执行停放汽车功能。
最佳答案
避免 Promise
constructor antipattern在carListParsing
中,并从validateCar
返回
您的结果 promise !
function addNewCars(req, res) {
// CarsList is a typo
carListParsing(req.body)
.then(function () {
console.log('OK');
res.status(200).send('OK');
}, function (err) { // more appropriate than catch
res.status(200).send(err);
});
}
function carListParsing (data) {
let newCar = {
name: data.car_name
};
// don't call `new Promise`
return validateCar(newCar).then(function (data) {
console.log('validate result1: ', data); //this line doesn't show
// if I get validation result, I can use next function createCat()
return data; // don't resolve
});
}
function validateCar(data) {
return db.cars.findAll({where: {name: data.name}}).then(function (org) {
// ^^^^^^
if (org.length < 1) {
console.log('validate1: OK'); //work
return data;
} else {
console.log('validate2: already exist'); //work
throw new Error('The ' + data.name + ' car is already exist.');
// ^^^^^ probably what you actually wanted
}
}) // don't ignore errors
}
关于javascript - 不要带着 promise 来工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44298342/
我有一个树结构,我想使用 Promises 遍历它,但我还没有找到适合它的代码模式。 假设我们得到了节点名称,并且将节点名称转换为节点的行为是一个异步过程(例如涉及网络访问)。还假设每个节点包含一个(
我正在从 github 存储库获取信息。我想要获取该存储库中的拉取请求列表,获取与每个拉取请求关联的提交列表,然后对于每个提交,我想要获取信息,例如提交的作者、与每个提交关联的文件数量以及对每个文件进
我正在尝试在位于 Spring Web MVC 项目中的 Swing 应用程序中使用 @Autowired 语句。我只是将它作为 Java 应用程序运行。 import javax.mail.Mess
我正在尝试测试一个函数,该函数调用另一个模块的函数并返回一个 promise ,问题是 jest 不会等待 myFunction 完成,而是跳出它并将其视为 promise ,因为结果部分显示“don
当我在 Rider (net core) 中按下运行按钮时,它会运行以下命令: /usr/local/share/dotnet/dotnet /pathtomyproject/myproject.dl
我在 hibernate 状态下有点困惑, 这里我有一个父对象,这个父对象(假设A是父对象,B是子对象)与子对象B具有多对一的单向关系。 现在,我有一个对象 A 和对象 B 。我所做的是,我将所有子对
我是一名优秀的程序员,十分优秀!