libook
2020-07-09 15:26:16 +08:00
里面用了 this,但是所有层级都是箭头函数,箭头函数没有 this,冒泡查找 this 对象,那么外层遇到的第一个 this 就是当前代码所在的 module,也就是说你每次循环都共用了同一个 this,覆盖了同一个 this.proteinObject[ele]。
Array 的 forEach 以及 Readline 的 on 方法内传入的 callback 是异步执行的,比如你代码里针对 4 个文件名的 forEach 过程不会等着前一个处理完再处理下一个,而是一旦前一个进入了异步 io 过程下一个就开始处理了,几乎相当于同时在对两个 txt 进行 io 操作,如果希望能够同步顺序执行应该用 for 循环,处理过程用 async 函数或 promise 封装,在 for 循环里 await 调用,确保上一个处理完再进入下一个循环处理下一个。
不确定你要做什么,如果希望深入讨论的话,建议详细描述一下需求。