Squeak.ru - шаблоны программирования

почему асинхронность внутри вычислений создает бесконечные циклы (vue)?

Мой вычисленный компонент выглядит следующим образом:

export default {
  computed: { 
    dataDoctorPerPage: async function () {
        const start = this.pagination.page * this.pagination.rowsPerPage - this.pagination.rowsPerPage;
        const end = start + this.pagination.rowsPerPage - 1;
        const doctors = this.dataDoctor
        const newDoctors = {}
        let key = 0
        for(let item in doctors) {
            if(key >= start && key <= end) {
                for (let i = 0; i < doctors[item].length; i++) {
                    const params = {
                        hospitalId: doctors[item][i].hospital_id,
                        doctorId: doctors[item][i].doctor_id,
                    }
                    await this.getDataSchedule(params) /* call async */
                    // console.log(this.dataSchedule)
                }
                newDoctors[item] = doctors[item]
            }
            key++
        }
        return newDoctors
    }
  }
}

Если вызывается dataDoctorPerPage, он запустит скрипт

await this.getDataSchedule(params) вызовет async/api через магазин vuex. Моя проблема там. когда я вызываю await this.getDataSchedule(params), он будет зацикливаться без остановки

Мой магазин vuex выглядит так:

const actions = {
  async getDataSchedule ({ commit }, payload) {
    const result = await api.getDataSchedule(payload)
    const items = result.data
    commit('setDataSchedule', { items: items })
  },
}

Как я могу решить эту проблему?

Можно ли запустить асинхронность в вычислении?


  • Попробуйте прочитать это и это 23.12.2019
  • @LoiNguyenHuynh На самом деле я пробовал. Но это то же самое 23.12.2019

Ответы:


1

Computed не должен использовать async. Если вы хотите сделать это, вам нужна другая библиотека для этого. https://alligator.io/vuejs/async-computed-properties/

Но то, что вы хотите сделать, это использовать асинхронный метод (в компоненте или хранилище) и установить данные где-нибудь (в данных компонента или состоянии хранилища), а затем указать, что ваше вычисленное значение ссылается на это.

23.12.2019
  • На самом деле я должен был попробовать это. Но это то же самое 23.12.2019
  • Тогда у вас есть логическая ошибка в вашем коде. Покажите объект API и мутации. 23.12.2019
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...