tig*_*mos 5 javascript handler async-await es6-proxy
请参阅 Mozilla 文档中有关Proxy()的内容
一个简单的代理示例:
const handler = {
get: function(target, prop, receiver) {
return Reflect.get(target, prop, receiver);
},
set: function(target, prop, receiver) {
return Reflect.set(target, prop, receiver);
}
};
const proxy = new Proxy(target, handler);
Run Code Online (Sandbox Code Playgroud)
get我在and中有一些异步函数set,所以我想让get和setto 成为async函数。
我期望类似的东西:
const handler = {
get: async function(target, prop, receiver) {
await foo();
return Reflect.get(target, prop, receiver);
},
set: async function(target, prop, receiver) {
await bar();
return Reflect.set(target, prop, receiver);
}
};
const proxy = new Proxy(target, handler);
await (proxy.prop1 = xxx);
yyy = await proxy.prop2;
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现我的目标?谢谢!
这不可能。赋值表达式proxy.property = value始终为1value,而不是代理set陷阱的某些返回值。你不能让它返回一个await有能力的承诺。
1:除非分配(包括代理陷阱)当然抛出异常。