Coffeescription不遍历整个对象
Coffeescript not iterating through entire object
我正试图创建一个函数,通过ajax
请求数据库中国家ID的信息,因为这就是我查询的address
表中数据的表示方式。也就是说,在address
表中,表示的是国家的id
,而不是国家名称,实际的国家名称在我查询的另一个表中。
在我发送ajax
请求后,我会创建一个地址字符串。然而,它只是更新对象的最后一个值,而不是所有值。这是我的咖啡脚本:
requests = Array()
for key, val of {'Correspondence_Country__c':data['Correspondence_Country__c'], 'Country_of_Residence__c': data['Country_of_Residence__c']}
console.log(key)
console.log(val)
requests.push($.ajax
url: window.location.pathname
type: 'post'
dataType: 'json'
data: 'search_id=' + val + '&search_column=Id&sobject=Country__c&columns=["Name"]'
error: (jqXHR, textStatus, errorThrown) ->
alert('Error: ' + textStatus + ': ' + errorThrown)
success: (c_data, textStatus, jqXHR) ->
data[key] = c_data['Name']
console.log(c_data['Name'])
console.log(key)
)
defer = $.when.apply($, requests)
我省略了defer.done
函数。console.log信息的结果如下:
China P.R.
Country_of_Residence__c
China P.R.
Country_of_Residence__c
而不是预期的
China P.R.
Correspondence_Country__c
China P.R.
Country_of_Residence__c
我的咖啡说明书有问题吗?
EDIT:看起来这与ajax
请求或将ajax
请求推送到requests
数组有关。在推送ajax
调用之前,我在函数的开头添加了几个console.log()
,它产生了以下信息:
Correspondence_Country__c
a063000000CZoZHAA1
Country_of_Residence__c
a063000000CZoZHAA1
$.ajax
是异步的(除非另有说明,但您不希望这样做)。这意味着循环将在ajax调用完成之前结束。当ajax调用最终结束时,"key"将是数组的最后一个值。(JS没有块作用域)。
使用咖啡的do
来保持正确的值。
for key, val of {'Correspondence_Country__c':data['Correspondence_Country__c'], 'Country_of_Residence__c': data['Country_of_Residence__c']}
do (key) ->
# your code
相关文章:
- 循环遍历以数组为值的Javascript对象
- 如何遍历包含对象的数组-javascript
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 遍历AngularJs中的对象
- 无法在javascript中循环遍历对象数组
- 在循环遍历对象 HTMLDivElement 时,应用 ChileNode 样式 zindex 在 firefox 和
- 我想遍历一个对象数组,我不想要任何重复项
- 使用函数for循环遍历对象以更改值,然后返回结果
- 如何遍历 JSON 对象以适合 JavaScript 数组
- 循环遍历 JSON 对象
- 遍历对象会导致无限循环
- 动态对象遍历与 NodeJS
- Javascript 尝试遍历对象数组以显示其属性
- 用jQuery遍历JSON对象
- 遍历对象项
- 如何遍历javascript对象
- 继承对象.遍历所有对象
- 如何用多个对象遍历json
- 嵌套的JSON.解析错误和JS对象遍历错误没有被JS的try/catch捕获,崩溃服务器
- 对象遍历在Three.js中是什么意思?