[英]How to make JavaScript Proxy's handler methods to be async functions?
請參閱有關Proxy()的 Mozilla 文檔
一個簡單的代理示例:
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);
我在get
和set
中有一些異步函數,所以我想讓get
和set
成為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;
我怎樣才能實現我的目標? 謝謝!
這是不可能的。 賦值表達式proxy.property = value
always 1的計算結果為value
,而不是代理set
陷阱的某個返回值。 你不能讓它返回一個await
的 promise。
1:除非分配,包括代理陷阱,當然會拋出異常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.