您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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");

将会:

Query finishedNext line

Next lineQuery finished

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

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

javascript 2022/1/1 18:15:32 有604人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶