Security News
NVD Backlog Tops 20,000 CVEs Awaiting Analysis as NIST Prepares System Updates
NVD’s backlog surpasses 20,000 CVEs as analysis slows and NIST announces new system updates to address ongoing delays.
async-pubsub
Advanced tools
这里是传统模式观察者模式 实现的只是一种模式,如果开发使用的是异步的操作
事件的发布Publish时,为了不阻断进程使用setTimeout重新开启了一个进程,在一定场景下提升了性能. 造成的问题:
使用观察者模式,开发者使用的肯定是同步式的写法,并没有开启异步回调。
所以当发布一个事件之后在短时间内取消了这个订阅。会导致在事件的发布过程中就被扼杀掉。
pubsub.subscribe('sayName',function () {
console.log('my name is caozheng');
});
pubsub.publish('sayName');
pubsub.unTopic('sayName');
// 理想的结果是输出: my name is caozheng
// 再将sayName订阅的事件给杀掉
// 然而因为publish的时候使用的是setTimeout异步处理
// 结果没有输出的时候就被unTopic杀掉了
1、 观察者模式不变,改变开发者写法。
开发者将使用async await、promise、co等异步转同步的写法。 从而解决publish的时候被unTopic/unSubscribe给杀掉
2、改变观察者模式转换成异步写法 async pubsub 观察者模式监听观察者模式直到publish事件之后,才能被杀掉。 开发者依然可以使用同步写法
理想实现写法与之前相同 asyncPubsub.js
asyncPubsub.subscribe('sayName',function () {
console.log('my name is caozheng');
});
asyncPubsub.publish('sayName');
asyncPubsub.unTopic('sayName');
// 输出: my name is caozheng
FAQs
async pubsub
The npm package async-pubsub receives a total of 0 weekly downloads. As such, async-pubsub popularity was classified as not popular.
We found that async-pubsub demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
NVD’s backlog surpasses 20,000 CVEs as analysis slows and NIST announces new system updates to address ongoing delays.
Security News
Research
A malicious npm package disguised as a WhatsApp client is exploiting authentication flows with a remote kill switch to exfiltrate data and destroy files.
Security News
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.