(VUEJS)从Axios内部创建访问方法

时间:2018-06-26 08:34:34

标签: vue.js vuejs2 youtube-data-api

我只有一个简单的错误,这使我困惑了将近3个星期。

我的问题是,我想在axios API URL的末尾从方法“ idvideo”返回字符串,但是什么也没发生。

如您在下面的代码中所见。

我一直在寻找解决方案并尝试过多次错误,但仍然找不到能帮助我的最佳答案。

    export default {

        data() {
          return {
            errors: [],
            videos: [],
            items: []

          }
        },

        methods: {
          idvideo: function() {
            const data = this.items
            const result = data.map((item) => {
              return {
                fetchId: item.snippet.resourceId.videoId
              };
            }).sort((a, b) => b.count - a.count);

            var i, len, text;
            for (i = 0, len = result.length, text = ""; i < len; i++) {
              text += result[i].fetchId + ",";
            }
            var x = text.slice(0, -1);
            return(x);
          }

        // Fetches posts when the component is created.
        created() {

          // Ini adalah API utk playlist yang dipilih
          axios.get("https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=PLjj56jET6ecfmosJyFhZSNRJTSCC90hMp&key={YOUR_API_KEY}")
          .then(response => {
            // JSON responses are automatically parsed.
            this.items = response.data.items
          })
          .catch(e => {
            this.errors.push(e)
          }),

          // Ini adalah API utk data yang dipilih
          axios.get('https://www.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails%2Cstatistics&key={YOUR_API_KEY}&id='+this.idvideo())
        .then(response => {
            // JSON responses are automatically parsed.
          this.videos = response.data.items
          })
          .catch(e => {
            this.errors.push(e)
          })
        },
        }

我非常感谢任何可以帮助我的解决方案。如果你们有实现此功能的最佳方法,请告诉我。

对不起,我的英语不好,还有任何错误。这是我第二次在该平台上发帖提问。

非常感谢先生!

1 个答案:

答案 0 :(得分:0)

由于它们是异步请求,因此我想到了以下解决方案。

解决方案:

在第一个axios调用中移动下一个axios调用。这是因为,只有在首次调用之后,才会检索“项目”,然后将其分配给'System.Net.Http',因此下一个axios调用将具有来自this.items函数的所需数据。

idvideo()