定义属性时,javascript返回未定义的对象属性
我读过所有以前写的答案,但没有一个解决了我的问题 通过异步调用构建关联数组后,我将其传递给用于构建html元素的函数。关联数组具有指定的值,但当我尝试访问它们时,它们返回未定义的值 下面是登录到console的一段代码:定义属性时,javascript返回未定义的对象属性,javascript,Javascript,我读过所有以前写的答案,但没有一个解决了我的问题 通过异步调用构建关联数组后,我将其传递给用于构建html元素的函数。关联数组具有指定的值,但当我尝试访问它们时,它们返回未定义的值 下面是登录到console的一段代码: var buildStreamerHtml = function(thisNameInfo){ console.log("buildHtml: "); console.log(thisNameInfo); console.log("status[]: " + thi
var buildStreamerHtml = function(thisNameInfo){
console.log("buildHtml: ");
console.log(thisNameInfo);
console.log("status[]: " + thisNameInfo['status']);
console.log("status.: " + thisNameInfo.status);
以下是控制台日志:
buildHtml:
Object
logo: "https://static-cdn.jtvnw.net/jtv_user_pictures/freecodecamp-profile_image-d9514f2df0962329-300x300.png"
status: "Offline"
title: "FreeCodeCamp"
url: "https://www.twitch.tv/freecodecamp"
userExist: "yes"
__proto__: Object
status[]: undefined
status.: undefined
当我尝试访问thisNameInfo数组时,该数组中的每个键(徽标、状态、标题、url和userExist)都返回未定义
我做错了什么?如何访问键值
前面的一个答案建议访问如下:
thisNameInfo[0]。状态
我尝试过它,但它给出了一个错误,因为thisNameInfo未定义为数组
以下是数组在开始时的初始化方式:
var thisNameInfo = {};
这是代码的一段,在这里赋值。同时创建关键点
return $.getJSON("https://wind-bow.glitch.me/twitch-api/channels/" + name,
function(dataChannel) {
thisNameInfo.url = dataChannel.url;
thisNameInfo.title = dataChannel.display_name;
thisNameInfo.logo = dataChannel.logo;
});
下面是根据Bergi建议的链接:我想你不知道“同时”是什么意思。显然,在“从异步调用构建关联数组之后”没有将对象传递给函数。如果您需要进一步的帮助,请发布完整的代码,特别是对返回ajax承诺的函数的调用和对
buildStreamerHtml
的调用。我猜这是一个顺序或时间问题。尝试从.getJSON回调调用BuildStreamRHTML。另外,JavaScript中没有关联数组。您正在处理一个对象。Hi Bergi,无论异步调用如何,当我记录整个数组或对象时,我都可以看到值。当我记录特定值时,它返回未定义的值。这两个动作同时发生。它们不是异步的。@Ivana只是返回callLogo
和callStream
。我用叉子叉了你的笔:@Ivana当你在中没有返回值时,你基本上返回了未定义的。这意味着承诺已通过未定义的值解决。当您没有返回callLogo
和callStream
时,callUser
的then
立即被解析为未定义的值。如果在中返回一个承诺
,那么它将有点像第一个承诺的连续性,因此第一个承诺在下一个承诺得到解决之前不会得到解决。