首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解事件驱动编程风格

理解事件驱动编程风格
EN

Stack Overflow用户
提问于 2015-12-09 17:48:27
回答 2查看 41关注 0票数 1

寻找这个例子(用我以前的知识在事件驱动中)。我可以说,这两个例程独立地和并行地运行(所以不会阻止洞程序)。

代码语言:javascript
复制
//....declaration and methods
register_1.on("execut_routine _1", function() { console.log("executed the routine  1"):})
register_2.on("execut_routine _2", function() { console.log("executed the routine  2"):})

但如果我做这个改变:

代码语言:javascript
复制
//....declaration and methods
register_1.on("execut_routine _1", function() { /*Long Blocking Operation*/})
register_2.on("execut_routine _2", function() { /*Long Blocking Operation*/})

第一次触发的事件会阻止第二次的发生,对吗?如果是这样,我如何才能扭转这种影响?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-09 17:52:26

Javascript是一个单线程环境,所以除非您正在执行与输入/输出相关的任务(等待文件系统、调用外部资源等),否则您的代码必须等待其他代码完成。

使用事件驱动的编程样式无助于解决这个问题。

但是,您可以告诉您的代码进入某种“睡眠”模式,它等待其他代码执行,然后在事件循环的下一个滴答处再次开始。例如,Node.js使用process.nextTick(fn)注册应该在多个滴答上执行的代码。

票数 3
EN

Stack Overflow用户

发布于 2015-12-09 17:52:33

Javascript通常不是多线程环境,因此即使在您的第一个示例中,实际情况是它们是串行执行而不是并行执行。它的运行方式类似于XHR的并行运行,但它们作为浏览器的函数运行,而不是Javascript直接运行(即网络请求并行运行),但是javascript处理程序总是会连续地触发。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34185575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档