首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从异步服务返回值中获取数据?

如何从异步服务返回值中获取数据?
EN

Stack Overflow用户
提问于 2018-06-02 19:03:22
回答 2查看 111关注 0票数 0

我在从api调用的返回中获取实际数据时遇到了一些问题。我可以看到输出到日志中的值,但是当我尝试使用data.admin_url访问它时,它返回未定义。

代码语言:javascript
复制
this.apiService
    .getCCUrls()
    .then(function(data){
        console.log(data); //output in the image below
        console.log(data[0].admin_url); //returns undefined
    });

它这样调用:

代码语言:javascript
复制
APIService.prototype.getCCUrls = function() {
    return this.makePublicApiRequest({
        method: 'GET',
        url: '/v1/cc-instances',
    });
};

中间有一些简单的实用程序代码,但最终它会到达这个函数...

代码语言:javascript
复制
APIService.prototype.makeRequest = function(config) {
    return this.$http(config)
               .then(function(response) {
                   // If we get a replacement token, update it.
                   this.authService.checkResponseHeaders(response);

                   var data = response.data;
                   if (data.data) {
                       return data.data;
                   }
                   if (data) {
                       return data;
                   }
                   return response;
               }.bind(this));
};

最后,这是console.log中的输出:

那么,在我的第一组代码中,如何获取admin_url、agent_url或type变量?

EN

回答 2

Stack Overflow用户

发布于 2018-06-03 07:43:59

此问题可能是由于下划线为\u0332下划线引起的:

代码语言:javascript
复制
var x = [{"admin\u0332url":"/cca"}];
console.log(x);
console.log(x[0].admin_url);
console.log(x[0].admin\u0332url);
console.log(Object.keys(x[0]))

开发人员控制台不支持退格,因此\u0332下划线看起来与ASCII下划线相同。

如果您尝试使用使用ASCII下划线的字符串来访问它,则x[0].admin_url将为undefined

票数 0
EN

Stack Overflow用户

发布于 2018-06-02 19:05:25

您需要访问响应的数据属性,因此,它应该是,

代码语言:javascript
复制
this.apiService
    .getCCUrls()
    .then(function(data){
        console.log(data.data[0].admin_url);
    });
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50656238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档