IgorPI
@IgorPI

Импорт и последующий вызов анонимной функции?

Коллеги, приветствую!

Где я делаю ошибку?

Пытаюсь выполнить анонимную функцию из массива.
Смысл в том, что в массиве middleware список имён функций.

Динамически импортирую функцию и пытаюсь выполнить.
На скриншоте видно, что функция импортирована, но при её вызове происходит ошибка

Uncaught (in promise) TypeError: f is not a function


Мол в обещании не функция!

В чём дело?

Функция для экспорта
export default function (){
  console.log("middleware: auth")
}


index.beforeEach((to, from, next) => {
  console.log("router.beforeEach")
  if (!to.meta.middleware) {
    return next()
  }
  const middleware = to.meta.middleware
  const context = {
    to,
    from,
    next,
    store
  }


// проблема здесь
  middleware.forEach(async (e, i, a) => {
    import(`@/middleware/${e}.js`)
        .then((f) => {
          f(context)
        })
  })
})


5d5f22d6151d4245519380.png
  • Вопрос задан
  • 219 просмотров
Решения вопроса 1
IgorPI
@IgorPI Автор вопроса
Решение!

Выполняю динамический импорт анонимных функций из @/middleware/
middleware.forEach(async (e, i, a) => {
    import(`@/middleware/${e}.js`)
        .then((obj) => {
          obj.default(context)
        })
  })
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы