【发布时间】:2017-10-25 08:39:25
【问题描述】:
我定义了一个代理如下:
const o1 = {
ready: false
};
setTimeout(() => {
o1.ready = true;
}, 1000000000);
const handler = {
get(target, propKey, receiver) {
if (target.ready == false) {
throw new Error('not ready');
} else {
return 'ready'
}
}
};
const proxy = new Proxy(o1, handler);
proxy; // raises 'not ready'
评估proxy 会引发错误“未准备好”,即使它不是属性访问。在评估对代理的引用时,如何防止引发错误?这会在没有赋值的情况下导致错误。
【问题讨论】:
-
你看到这个是什么环境?在 chrome 上测试,它按预期工作,编辑:刚刚在节点中复制
-
节点 v8.7.0。我在 chrome 上也没有错误:/
-
在 github 上创建了一个问题,将更新详细信息
-
hmmmm...我没有得到
ready或not ready。代理的 get 处理程序用于访问代理本身的属性。proxy.ready将触发not ready。但是,我看不出你的代码是如何触发任何事情的......
标签: javascript node.js proxy