Javascript 我可以在返回承诺时“重命名”方法“then”和“catch”吗?
我想更改名称,用西班牙语写exito success而不是。然后用error而不是catch 这是我的密码 我该如何处理这个问题 var url=; var object=nullJavascript 我可以在返回承诺时“重命名”方法“then”和“catch”吗?,javascript,web-services,angular,q,Javascript,Web Services,Angular,Q,我想更改名称,用西班牙语写exito success而不是。然后用error而不是catch 这是我的密码 我该如何处理这个问题 var url=; var object=null var dataServicio = new dataService(url, object, $scope, $routeParams, $controller, $timeout, $http, $q); dataServicio.ajaxPeticion(
var dataServicio = new dataService(url, object, $scope, $routeParams, $controller, $timeout, $http, $q);
dataServicio.ajaxPeticion(url, object, $scope, $routeParams, $controller, $timeout, $http, $q)
.then( function(response){
$scope.datosVista = response;
})
.catch( function(err){
alert(err);
});
}
function dataService(url, object, $scope, $routeParams, $controller, $timeout, $http, $q) {
return {
ajaxPeticion : ajaxPeticion
}
function ajaxPeticion(url, object, $scope, $routeParams, $controller, $timeout, $http, $q) {
if(object === null || object === undefined) {
var metodo = 'GET';
}
else {
var metodo = 'POST';
}
var deferred = $q.defer();
var promise = deferred.promise;
$http({
method: metodo,
url: url,
data: object,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.then(function(response) {
if(response.data.jsonMC.resultado === false || response.status != 200 || response.data.jsonMC.respuesta === null) {
deferred.reject(response.data.jsonMC.error);
}
else {
deferred.resolve(response.data.jsonMC.respuesta);
}
}, function errorCallback(response) {
deferred.rejected(response.data.jsonMC.error);
});
return promise;
}
}
你可以,但老实说,我真的看不到它的效用。您将创建一种方式,使所有开发人员或您将习惯于一种实际上不存在的方法,您的代码将永远不会被不了解此约定的外部人员理解。 同时,任何使用常规承诺的库都将使用then而不是您的方法 顺便说一句,对于简单JavaScript,这应该是您想要的,您可以使用$q服务对AngularJS执行相同的操作: Promise.prototype.exito=Promise.prototype.then; 新承诺人解决方案,拒绝=>{ setTimeoutfunction{console.log'finished';resolve'resolved';},2500;
}.exitofunctiondata{console.logdata;} 用其他名称屏蔽方法被认为是不好的做法。
如果您仍在考虑,请注意错误在英语中也有含义,并且可能导致混淆 是的,我知道。然而,我的老板想要所有的东西都用西班牙语。太可怕了。无论如何,谢谢你。你真的应该让他知道这是语言中内置的标准接口的一部分。这就像试图改变单词if tosi@FacundoZambuto试着向他解释他的观点是毫无道理的。接下来呢?翻译所有JavaScript/AngularJS/jQlite方法?如果他不能理解这一点,你能做的最好的事情就是找到一份新工作,而不是掩盖所有的方法。当我开始在这个项目中工作时,我一直在用英语名称编写方法,比如getOriginalValue或setCustomerName。当他注意到这一点时,他要求我试着用西班牙语写方法。。。如果你能看看指令。。。太可怕了,太恶心了。我的意思是,我喜欢我的语言,但编程是用英语的。
Promise.prototype.exito = Promise.prototype.then;