【发布时间】:2020-09-26 08:22:07
【问题描述】:
是否有允许我通过网络套接字调用远程对象的库?
我的目标是能够像使用任何其他对象一样使用对象(在其上设置/获取属性,调用方法),但该对象实际上是 Web 套接字上的代理,其中实际实例位于服务器上:
const obj = new MyObject();
console.log(obj.prop);
obj.prop = 1;
obj.do();
要明白我的意思,我想这样的库会使用 ES6 代理。
【问题讨论】:
-
您需要这样做的原因是什么?即使使用
WebSockets,这仍然需要网络调用,因此您展示的示例不会这样。当然您可以使用Proxy进行网络调用,但不要指望它能够工作,因为它是同步的。 -
@goto1 你可能是对的,也许我想多了。另一方面,最好有一个库,它可以为您“代理”对象并实现所有远程调用
-
所以你是对的,像 getter 这样的同步调用是行不通的。但我觉得我的要求仍然可以工作,即使它需要方法是异步的
-
您可以为
[[Get]]和[[Set]](以及其他一些陷阱)实现异步功能,但有些地方您不能进行异步调用,因为它会违反 Proxies'不变量...
标签: javascript ecmascript-6 websocket es6-proxy