分享
三行代码  ›  专栏  ›  技术社区  ›  Smokey Dawson

向nuxt.config.js添加函数

  •  1
  • Smokey Dawson  · 技术社区  · 9 月前

    基本上我有一个应用程序,在生成时,我会生成所有页面、一个站点地图和一个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的顶部,但生成时出错。

    1 回复  |  直到 9 月前
        1
  •  1
  •   Phil    9 月前

    你可以试着把承诺保存到一个变量中重新使用,例如

    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请求的情况下继续使用它。