在vue中传递承诺中的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在vue中传递承诺中的数据相关的知识,希望对你有一定的参考价值。

我最近开始使用Vue 2并使用Pexels API开展一个小项目。我正在尝试调用API以获取一些图像URL以加载到数据对象中的属性。但是,我无法将数据属性传递给回调。我认为我的代码可以更好地解释事情。这是整个Vue实例:

export default {
  name: 'Gallery',
  data() {
    return {
      pics: [1,2],
      count: 100
    }
  },
  mounted() {
    console.log(this.count) //I can see this value
    console.log(this.pics) //I can also see this value 
    let test = this.count; 
    pexelsClient.getPopularPhotos(10, 1)
        .then(function(result){
          console.log(test); //This will allow me to see the value 
          console.log(this.count) // This gets me an error message see below.
          console.log(result.photos[0].url);
          return result;
      })
   }//End of mounted function
  }//End of Vue instance

console.log(this.count)时的错误消息:

未捕获(在承诺中)TypeError:无法读取未定义的属性'count'

我曾尝试阅读有关此事的大量文章,并查看了其他帖子,找不到任何有助于我的内容。我承认承诺对我来说是一个非常混乱的话题。任何帮助都会很棒。最后,我想将每个图像URL推送到this.pics数组中,然后在页面上显示它们。再一次,任何帮助都会很棒。

答案

你不能使用this来引用函数范围内的vm实例,除非你使用箭头符号,如下所示:

pexelsClient.getPopularPhotos(10, 1)
    .then((result) => {
    console.log(this.count) 
}

以上是关于在vue中传递承诺中的数据的主要内容,如果未能解决你的问题,请参考以下文章

从另一个活动的活动中的片段传递数据

如何在导航抽屉中的两个片段之间传递数据

如何使用java将数据从片段传递到android中的另一个片段?

挂载钩子中的错误(承诺/异步):“TypeError:无法读取未定义的属性'scrollIntoView'”在挂载钩子(Vue)中

如何将活动中的意图传递给已打开的片段

单选按钮以片段形式传递数据