JavaScript Promise 和 this 关键字
JavaScript Promise and the this keyword
给定以下JS,如何设置PlateCheck
对象的message
属性?
var plateCheck = {
plateNumber: '',
message: '',
alertClass: '',
checkPlate: function (plateNumber) {
PlateCheckService.checkPlate(plateNumber).then(function (response) {
var data = response.data;
if (data.VehicleAtl !== null) {
this.message = "Hot!";
this.alertClass = 'alert-danger';
} else {
this.message = "Plate #" + data.PlateNumber + " is clean.";
this.alertClass = 'alert-success';
}
});
}
};
编辑
PlateCheckService.checkPlate(plateNumber)
返回一个承诺...
这可能只是一个范围问题,但通过调用plateCheck.checkPlate(fooPlateNumber)
返回相同的对象,也许这可以解决问题。
var plateCheck = {
plateNumber: '',
message: '',
alertClass: '',
checkPlate: function (plateNumber) {
var me = this;
PlateCheckService.checkPlate(plateNumber).then(function (response) {
var data = response.data;
me.plateNumber = plateNumber;
if (data.VehicleAtl !== null) {
me.message = "Hot!";
me.alertClass = 'alert-danger';
} else {
me.message = "Plate #" + data.PlateNumber + " is clean.";
me.alertClass = 'alert-success';
}
});
}
};
但也许你可以只提取服务函数,以返回一个plateCheck
对象。
function checkPlate(plateNumber) {
var plateCheck = {};
plateCheck.plateNumber = plateNumber;
PlateCheckService.checkPlate(plateNumber).then(function (response) {
var data = response.data;
if (data.VehicleAtl !== null) {
plateCheck.message = "Hot!";
plateCheck.alertClass = 'alert-danger';
} else {
plateCheck.message = "Plate #" + data.PlateNumber + " is clean.";
plateCheck.alertClass = 'alert-success';
}
});
return plateCheck;
}
相关文章:
- JavaScript 中的嵌套函数和 “this” 关键字
- Javascript 对象和 this 关键字
- 将“this”关键字发送到对象中
- 如何使用“this”关键字来调用a
- 使用关键字“this”有什么好处
- 组合类和事件监听器:`this`关键字
- 将this关键字与selectedIndex一起使用的优势
- javascript中的关键字THIS作为全局命名空间
- 在forEach中调用类函数:Javascript如何处理“this”关键字
- 使用“this”关键字响应类行为
- Javascript 'this' 关键字 在嵌套函数中
- Javascript 关键字 THIS 和 ELEMENT
- 使用 RhinoScriptEngine,我如何更改 javascript 关键字“this”所指的内容
- 当用作函数参数/agrument时,关键字this指的是什么
- Javascript函数和对象使用关键字'this'不工作
- 为什么关键字“this”在HTML和JS中不起作用
- 如何在javascript中使用关键字this
- 在 lambda 中使用关键字 this 与带有 Typescript 的函数时会发生什么
- 在使用对象文字表示法定义的模块中使用关键字this的最佳实践
- 关键字this没有给我当前对象,只有它的父对象.如何得到当前对象