用nodejs写的gRPC流式服务端,在循环体外部创建了proto消息体,在循环内部set值,并write回客户端,结果客户端收到的每个包内容都相同。
看到这结果,也能猜到个大概了,必定和node的异步机制有关,循环结束后才真正调用之前的write函数,导致每次发送的都是最终的proto消息。
想起node闭包的一个禁忌:不要在闭包中使用外部的循环变量或后续会发生变化的变量
用nodejs写的gRPC流式服务端,在循环体外部创建了proto消息体,在循环内部set值,并write回客户端,结果客户端收到的每个包内容都相同。
看到这结果,也能猜到个大概了,必定和node的异步机制有关,循环结束后才真正调用之前的write函数,导致每次发送的都是最终的proto消息。
想起node闭包的一个禁忌:不要在闭包中使用外部的循环变量或后续会发生变化的变量