基本上,我有一个应用程序,在generate上,我生成所有页面、一个站点地图和一个RSS提要,尽管我必须做3次相同的axios调用。
就像这样
nuxt.config.js
generate: {
routes: function() {
return axios.get(data)
.then(res => {
...
})
}
},
sitemap: {
routes: function() {
return axios.get(data)
.then(res => {
...
})
}
},
feed: {
etc...
}现在有什么方法可以调用数据一次并将其提供给每个模块方法吗?我尝试将一些函数放在nuxt.config.js的顶部,但是在生成时出现了错误。
发布于 2019-02-10 23:39:53
您可以尝试将承诺保存到一个变量中,以便重新使用,例如
const routesPromise = axios.get(data).then(({ data }) => data)
// snip
generate: {
routes () {
return routesPromise.then(data => {
// ...
})
},
sitemap: {
routes () {
return routesPromise.then(data => {
// ...
})
}
},
// etc将.then()调用添加到承诺不会修改原始解析值,因此您可以在只发出单个HTTP请求的情况下继续多次使用它。
https://stackoverflow.com/questions/54622243
复制相似问题