Node.js的异步机制是其最大的特色,异步可以应对高并发,具有很好的性能。
但是如果在某个方法里,涉及到数据库的多层查询,异步机制反而成为阻碍。当执行完第一层SQL后,根据所得的结果集(rows)进行结果集进行遍历时,每次遍历的结果作为where条件再执行下一层SQL时,下一层及以后的SQL并不会执行,而是在结果集(rows)遍历到最后时,才执行下一层SQL。
这时,若SQL只有两三层,其实倒还好,可以合并SQL;但是SQL层数多了之后,这种异步机制却是最大的阻碍。
这时,就需要用到Node.js的同步模块(async)。具体如何进行操作,Node.js的官方API有详细说明。我在这就不一一叙述了。
时间: 2024-10-06 22:10:29