2015-08-04个人定制(nodejs中的循环陷阱)

在做用户定制的时候,即为针对每个用户只是显示他参加的保险种类(sistype),遇到了nodejs异步编程的问题,因为在后台的contrller中的getsistyoe中,我需要先对缴费历史表进行用户的核对,如果这个usename在payhist表之中,那么就对其参保种类进行一个对应的设置,比如,在养老表中判断之后存在这个用户username,那么对应的sistype表中的sign应该是sign=1,kind=养老,这两个属性取出来在用户登录之后的界面进行显示。

因为对五个表的操作完全一致,避免代码重复。。。。。。。

但是,遇到的问题::

一开始,只需要payhist表名和sign的属性值。考虑通过循环数组,将其需要变的值的范围放到数组。通过i变量控制实现,但是由于nodejs本身的异步,所以无法实现,其取出的数据都是先全部取出来,然后再进行下一步的sign值的循环,导致最后只是最后一个的sign的属性值。

 

 

第二,考虑避免循环,用函数来实现,但是这样还是会受到异步编程的影响,因为取结果的时候还是会全部进行完两个函数判断完username存在否,从那个payhist1payhist2表中判断完取出数据之后,然后才进行第二个getsistype函数,而此时已经是最后一个payhist表了,判断的sign也只是最后一个表所对应的,所以也无法实现。

 

最后还是采用了重复代码的做法。。。:payhist1 payhist2 payhist3

posted @ 2015-08-29 19:20  kcream  阅读(193)  评论(0编辑  收藏  举报