@rjunovskii

Как обернуть функцию в промис?

Имеется следующий блок кода:
mounted(){
        this.getProducts()

        this.getSubcategories()
        this.getBrands()
    },
    methods:{
        getProducts(param){
            const category_slug = this.$route.params.category_slug
            let url = `api/products/${category_slug}/`

            if (param){
                url += param
                //console.log(url)
            }

            axios
                .get(url)
                .then(response => {
                    this.category = response.data[0]
                    document.title = `Товары категории ${this.category.name}`
                    this.$store.commit('setCategory', this.category)
                })
                .catch(error =>{
                    console.log(error)
                })
        },


В хуке mounted выполняется метод, который отправляет запрос на сервак, парсит данные и отдает их на клиент, однако это все занимает время, и пока эти запросы выполняются, в хуке mounted происходит дальнейшее выполнение методов. К несчастью, нужные мне преобразования выполняются именно в методе getProduct, и мне требуется вызвать методы getSubcategories и getBrands сразу после выполнения getProduct.
Можно конечно все это поместить в коллбеки, однако из-за этого потом вываливаются некоторые баги, необходимо именно поместить метод getProduct в промис и по окончание его выполнения в блоке mounted сразу выполнить некоторый код. Заранее спасибо.
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы