Как вызвать метод сбоя в методе jquery.get / post? - PullRequest
0 голосов
/ 21 июня 2019

как я могу вызвать метод сбоя в метод успешного вызова обратного вызова ajax?например, когда я получаю некоторую дату с сервера, я должен сказать, что эти данные не в порядке.для этого я использую следующие коды:

Loading.show();
$.post(_api_server+"sign/in.php",opt,function(gets){
    try{
            if(gets.success){  
                Toast.show("success!!!","succ"); 
            }else{ 
                // duplicate codes
                Loading.hide();
                Toast.show("not Ok!!!");
            }
    }catch(e){
        // duplicate codes
        Loading.hide();
        Toast.show("not Ok!!!");
    } 
}).fail(function(){
    // duplicate codes
    Loading.hide();
    Toast.show("not Ok!!!");
});

, как вы видите, я использую дубликаты кодов для чего-то.я хочу использовать что-то вроде этого:

Loading.show();
$.post(_api_server+"sign/in.php",opt,function(gets){
    try{
            if(gets.success){  
                Toast.show("success!!!","succ"); 
            }else{ 
                this.fail();
            }
    }catch(e){
        this.fail();
    } 
}).fail(function(){
    Loading.hide();
    Toast.show("not Ok!!!");
});

как я могу это сделать?Есть ли способ для этого?

- обновление

У меня есть много AJAX с различными методами сбоя, я не могу использовать другие / внешние функции.

1 Ответ

2 голосов
/ 21 июня 2019

Вы можете просто поместить свой дублированный код в одну функцию. Если вы определите ее как неанонимную функцию или вы ссылаетесь на свою анонимную функцию через переменную, вы сможете вызывать ее из любого места.


var failedRequest = function(){
    Loading.hide();
    Toast.show("not Ok!!!");
};

Loading.show();
$.post(_api_server+"sign/in.php",opt,function(gets){
    try{
            if(gets.success){  
                Toast.show("success!!!","succ"); 
            }else{ 
                failedRequest();
            }
    }catch(e){
        failedRequest();
    } 
}).fail(failedRequest);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...