nodejs需要循环把一个i++赋给异步操作函数里面,除了使用匿名函数让for循环先执行后,还有别的什么办法吗? for ( item in result[1]) { (function(item){ listResult[item] = getExpandStr(expandStr, result[1][item], tenantUUID).then(function (resultExpand) { for (var x in resultExpand) { if (resultExpand[x].tag == 'bill') { result[1][item].bills = returnResources.generateBillRetInfo(tenantUUID, resultExpand[x]) } if (resultExpand[x].tag == 'groupMembership') { result[1][item].groupMemberships = returnResources.generateGroupMembershipRetInfo(resultExpand[x]) } } return result[1][item]; }); }(item)); }
回复 (10)
没人知道吗?
有没有人可以告诉我呢
把var改成let
@shynome 你没看我问的啥吧?是异步世界所以导致item在result[1][item]里无法获取
@coordcn 你现在说的我就明白了...,开始那个太简单了,不过还是谢谢你
@oyosc 你应该谢谢 @shynome
哈哈,都谢谢
代码块可以用头尾可以用 ``` 包裹一下哟
纠正一下,是使用匿名函数得到item变化的值,而不是等其异步完成的时候得到的item是最终值