栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaScript同步编程和异步编程之间有什么区别(在node.js中)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript同步编程和异步编程之间有什么区别(在node.js中)

区别在于,在第 一个示例中 ,程序将在第一行中阻塞。下一行(

console.log
)必须等待。

第二个示例中

console.log
将在处理查询时执行。也就是说,查询将在后台处理,而您的程序正在执行其他操作,并且一旦查询数据准备就绪,您就可以使用它进行任何操作。

简而言之:第一个示例将阻止,而第二个示例则不会。

以下两个示例的输出:

// Example 1 - Synchronous (blocks)var result = database.query("SELECt * FROM hugetable");console.log("Query finished");console.log("Next line");// Example 2 - Asynchronous (doesn't block) database.query("SELECt * FROM hugetable", function(result) {    console.log("Query finished");});console.log("Next line");

将会:

  1. Query finished

    Next line

  2. Next line

    Query finished

注意
虽然Node本身是 单线程的 ,但有些任务可以并行运行。例如,文件系统操作在不同的过程中发生。

这就是为什么Node可以执行异步操作的原因:一个线程在执行文件系统操作,而Node的主线程一直在执行您的Javascript代码。在节点等事件驱动的服务器中,文件系统线程将某些事件(例如完成,失败或进度)以及与该事件相关联的任何数据(例如数据库查询或错误的结果)通知主节点线程。消息),然后由主节点线程决定如何处理该数据。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/411314.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号