我正在尝试定义一个返回诺言的函数。设置给定数组(push()
)时,promise应该会解决。
为此,我尝试使用代理对象(受this影响):
let a = []
;(async function(){
const observe = array => new Promise(resolve =>
new Proxy(array, {
set(array, key, val) {
array[key] = val;
resolve();
}
}));
while(true){
await observe(a);
console.log(new Date().toLocaleTimeString(),"Blimey Guv'nor:",`${a.pop()}`);
}
})(a);
;(async function(){
await new Promise(resolve => timerID = setTimeout(resolve, 2000))
a.push('ʕ·͡ᴥ·ʔ');
a.push('¯\(°_o)/¯ ')
})(a)
我不明白为什么这行不通。有人知道吗?
更笼统地说,有什么好的方法可以解决对数组的诺言?