在Axios

时间:2018-01-06 17:30:44

标签: javascript node.js axios

我一直试图做的是点击我的博客帖子的端点,然后使用这些数据删除Wordpress中的额外布局标记。我正在使用Axios来发出请求然后转换响应选项以修改数据以从" post_body"中删除额外的标记。我的回复中的对象。这适用于一篇博客文章,但当我尝试在我的所有博客博客文章中执行此操作时,它会返回20个左右的博客帖子。我想要做的是循环对象转换我的数据,然后发回一个请求回到另一个API发布我的博客文章。一旦我的承诺得到解决,我能够弄清楚这是否可行。我是否能够在.then中创建另一个for循环并找到我的" post_body"对象并发布帖子请求。不确定我是否以正确的方式思考这个问题。任何帮助深表感谢。

var fieldName = "et_pb";
var regExp = new RegExp("\\[\/?(" + fieldName + ".*?)\\]", "g");

function getBlogPosts() {
  return axios.get(allPosts, {
    transformResponse: axios.defaults.transformResponse.concat(function(data, headers) {
        // use data I passed into the function and the objects from the API
        // pass in data into the function using forEach this will return an array
        data.objects.forEach(function(i) {
            // use the returned array on Objects.key to find the name of the array
            Object.keys(i).forEach(function(k) {
                // if the key equals execute code
                // console.log(k);
                if (k === "post_body") {
                    // fire Regex
                    data[k] = i[k].replace(regExp, '');
                    // console.log(data[k])

                }
            })
        })
        return data;
    })
})
}


axios.all([getBlogPosts()])
 .then(axios.spread(function(blogResponse) {
    console.log(blogResponse.data);
}));

1 个答案:

答案 0 :(得分:1)

@James你是对的。您可以链接多个请求,如下所示,或者您可以选择asyn并等待选项。

 axios.get(...)  // for allPosts
  .then((response) => {
    return axios.get(...); // using response.data
  })
  .then((response) => {
    console.log('Response', response);
  });