#javascript #vuejs2 #nuxt.js #es6-promise #sitemap
Вопрос:
Я пытаюсь создать карту сайта с удаленным api в nuxt, но, похоже, это многообещающе.все не ждут ответа api и в результате возвращают нулевой объект. Я использую модуль карты сайта nuxtjs для этой работы. Структура, которую я создаю ниже:
import axios from 'axios' import range from 'lodash/range' export default { sitemap: { /** * ... */ sitemaps: [ /** * {...}, * {...}, */ { path: '/mg_chapters.xml', /** * ... */ sitemaps: async() =gt; { const base = "https://example.com", a2 = "/api/sitemap/chapters?page="; const fetcher = (index) =gt; axios .get(a2 index) .then((res) =gt; res.data.data) .then((els) =gt; els.map((el) =gt; ({ url: `${base}/cizgi-romanlar/${el}`, /** * ... */ })) ); const sitemaps = async() =gt; { const len = await axios.get(a2 1).then(res =gt; res.data.last_page) return await Promise.all( range(len).map(async(index) =gt; ({ path: `/mg_chapters-${index 1}.xml`, routes: await fetcher(index 1), /** * ... */ })) ); } return await sitemaps() } } ] }, }
Странно то, что когда я пробую этот блок кода в асинхронной выборке() в случайном файле vue, он работает нормально и возвращает ожидаемый результат. Из-за карты сайта в файле nuxt.config я не вижу журнала ошибок или того, что возвращается или нет. В основном я работаю над этой работой вслепую и проверяю xml-страницу. Если вас интересует, как выглядит ожидаемый результат:
[ { "path": "/mg_chapters-1.xml", "routes": [ { "url": "https://example.com/cizgi-romanlar/bolum-8", "changefreq": "daily", "lastmod": "2021-11-24T14:03:55.477Z" } ], "cacheTime": 86400000, "trailingSlash": true, "exclude": [ "/**" ] } ]
Итак, в nuxt.config мой блок кода возвращает пустой и не ждет ответа. Насколько я понимаю, это не является ограничением модуля sitemap.