Загрузка не прекращается после успешного ответа axios в vue

Я использую загрузку на axios после ответа axios, я предполагаю закрыть загрузчик, но иногда он закрывается при ответе axios, но иногда это не так. может быть из-за многократного запроса axios.

я хочу закрыть его, когда получен запрос axios

Я использую загрузчик глобально в своем api.service.js

import axios from "axios";
import {store} from '@/store';
import {TokenService} from "@/services/token.service";
import {loadingController} from '@ionic/vue';


const ApiService = {
    _requestInterceptor: 0,
    _401interceptor: 0,

    init(baseURL)
    {
        axios.defaults.baseURL = baseURL;
    },

    setHeader() {
        axios.defaults.headers.common[
            "Authorization"
            ] = `Bearer ${TokenService.getToken()}`;
           
    },

    removeHeader() {
        axios.defaults.headers.common = {};
    },

    get(resource ) {
        console.info(TokenService.getToken())
        return axios.get(resource);
    },

    post(resource, data) {
        return axios.post(resource, data);
    },

    put(resource, data) {
        return axios.put(resource, data);
    },

    delete(resource) {
        return axios.delete(resource);
    },

    customRequest(data) {
        return axios(data);
    },

    mountRequestInterceptor() {
        this._requestInterceptor = axios.interceptors.request.use(async config => {
            console.info("show loading");
            const loading = await loadingController.create({
                message: 'Please wait...'
            });
 
            await loading.present();

            return config;
        });
        
    },

    mount401Interceptor() {
        this._401interceptor = axios.interceptors.response.use(
            response => {
                 loadingController.dismiss()
               console.info('close')
                return response;
            },
            async error => {
                loadingController.dismiss().then(r => console.info(r));
                if (error.request.status === 401) {
              
                    if (error.config.url.includes("/api/staff/token")) {
                        await store.dispatch("/api/staff/logout");
                        throw error;
                    } else {
                        try {
                      
                            await store.dispatch("auth/refreshToken");
                            return this.customRequest({
                                method: error.config.method,
                                url: error.config.url,
                                data: error.config.data
                            });
                        } catch (e) {
                            throw error;
                        }
                    }
                }
                throw error;
            }
        );
    },

    unmount401Interceptor() {
        axios.interceptors.response.eject(this._401interceptor);
    }
}

export default ApiService;

вот моя функция, в которой я вызываю axios api

getGangWorkers() {
      let gang_boss_id = this.userInfo.id;
 loadingController.dismiss();
      return ApiService.customRequest({
        method: "get",

        url: `/api/gangBoss/get-gang-workers/${gang_boss_id}/${this.work_order_id}`,
      }).then((response) => {
        this.workers = response.data.workers;
       
      });
    }

Можно добавить наконец после улова. Наконец, убедитесь, что вы выполнили команду, даже если вызов Axios завершился или завершился ошибкой.

naresh_321 09.04.2021 15:48
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
15
0

Другие вопросы по теме