基本上我有一个应用程序,在生成时,我会生成所有页面、一个站点地图和一个RSS提要,尽管我必须让相同的AXIOS调用3次
像这样
NoX.CONT.JS
generate: { routes: function() { return axios.get(data) .then(res => { ... }) } }, sitemap: { routes: function() { return axios.get(data) .then(res => { ... }) } }, feed: { etc... }
现在有没有一种方法可以调用数据一次并将其提供给每个模块方法??我尝试将一些函数放在nuxt.config.js的顶部,但生成时出错。
你可以试着把承诺保存到一个变量中重新使用,例如
const routesPromise = axios.get(data).then(({ data }) => data) // snip generate: { routes () { return routesPromise.then(data => { // ... }) }, sitemap: { routes () { return routesPromise.then(data => { // ... }) } }, // etc
添加 .then() 对Promise的调用不会修改原始的解析值,因此您可以在只发出单个HTTP请求的情况下继续使用它。
.then()