我写这段代码,但我现在不知道为什么我的console.log给我未定义,我怎样才能获得原型属性或函数的价值
nonOwners = UserDevice.objects.filter(device=device, is_owner=False)
if nonOwners is None:
return errormsg('non nonOwners found for this device')
nonOwnersArray=[]
for nonOwner in nonOwners:
nonOwner_data = model_to_dict(nonOwner,
fieldlist=(
'device.serial',
'user.email',
'is_alerts_enabled',
'is_admin',
'is_owner',
),
rename={
'device.serial': 'serial',
'user.email': 'email'})
nonOwnersArray.append(nonOwner_data)

我不会实现的是将此用户列表作为我的对象属性,如某些数组中的User.allUsers。 感谢
答案 0 :(得分:0)
这是因为$.getJSON
是异步的。
当您从User
原型创建对象时,$.getJSON
必须调用其回调。
另一方面,您尝试模拟将数据属性添加到给定原型的全局变量。这是一种不好的做法,在一天结束时,你已经意识到你已经陷入了这种做法。
每当网站或应用程序启动时,您需要执行初始化代码,以便allUsers
被调用一次并注入所有位置:
const initApp = () => Promise.all([
$.getJSON("/someData/users.json")
// other comma-separated async functions which return promises
])
initApp().then(([allUsers, otherData, yetAnotherData]) => {
callSomeFunctionWhichRequiresAllUsers(allUsers)
})