立即掌握Node.js异步编程!通过成都小程序开发的分步、易于理解的指南增强您的Web开发技能。
NodeJS在外包Node.js开发任务时,有一种特定的方式来管理其操作。根据官方文档,它是一个异步事件驱动的JavaScript运行时。但用最直接的术语来说,这意味着什么?在这里,我将解决这个问题,并探讨编写异步代码时要遵循的最佳实践。
什么是异步编程?
异步编程意味着部分代码可以运行,而其他部分代码则在等待响应。让我们看一个具体的例子:作为一名Web开发人员,您将广泛处理API调用:您将编写代码,向外部服务器发送请求并等待响应。问题是,首先,您甚至不知道是否会得到您期望的响应,您也不知道执行该函数需要多长时间,您正在调用的服务器的情况等等。
因此,当您向API调用发出请求时,您完全受服务器状态的支配,并且您的应用程序应该停止正在执行的任何操作并等待响应,就像您的用户耐心等待页面加载一样。对吗?显然不是。在现代Web开发中,甚至毫秒也要计算。我们需要一种方法来使我们的应用程序顺利运行。也就是说,当我们向API发送请求时,我们应该能够在等待响应的同时做其他事情。这就是异步编程的用武之地。
异步编程有多种好处。当你探索NodeJS中的异步编程世界时,你会听到诸如事件循环、回调函数、承诺、可扩展性、非阻塞等术语。所有这些术语都围绕异步编程的理念,即在代码的其他部分等待响应时运行代码的能力。
在上面的例子中,我们假设对外部服务器进行API调用。由于NodeJS是非阻塞的,这意味着我们的代码将能够在前一个操作等待响应时继续执行其他操作。这使得NodeJS具有很高的可扩展性,因为它可以处理大量并发请求。要理解的最重要的概念是,在异步编程中,用外行的话来说,您可以在其他操作正在运行时运行某些操作。让我们看看实际操作。
事件循环
在NodeJs中,操作是在单个线程中处理的。这意味着一次只能执行一个操作。但是,正如我们上面所看到的,我们仍然可以在处理另一件事的同时做某件事。
这怎么可能呢?NodeJS有一种称为事件循环的机制,它允许NodeJS执行非阻塞I/O(输入/输出)操作,就像一个检查事件队列并按顺序执行操作的循环。如果您访问https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick中的官方NodeJS文档,您将了解到事件循环由以下阶段组成:计时器、待处理回调、空闲/准备、轮询、检查和关闭回调函数。
在NodeJS中使用异步代码
利用NodeJS中异步编程的强大功能不仅简化了我们的代码,而且还显著提高了应用程序的性能和响应能力。
创建一个基本的Express服务器
现在,下面通过一个示例介绍如何在NodeJS中使用异步编程。我们将创建一个基本的express服务器并向jsonplaceholderAPI发送一个get请求。我们将为此使用async/await方法,因为这是最方便的方法。要完成此操作,您需要在系统中安装node和npm。
首先,我们创建一个名为“async-node”的新文件夹,然后进入该文件夹。请注意,我们使用的是Linux终端,因此我们使用mkdir命令来创建该文件夹。进入文件夹后,我运行npminit-y来初始化一个新的npm项目。
-y标志用于跳过npm向我们提出的问题。完成后,我将通过npm安装express和axios包。我还将在此项目中使用nodemon,但不会安装它,因为我已将其全局安装。为了方便使用,我建议您也这样做。如果您不想这样做,您也可以在本地将其作为开发依赖项安装。
结论
在这里,成都小程序开发讨论了NodeJs中的异步编程。我们介绍了一些处理异步的方法,如承诺、回调函数和相对较新的async/await块。我们还研究了如何使用nodeJS的内置调试器调试我们的代码。所以现在由你来将异步代码合并并编写到你未来的项目中。但是,如果您需要进一步的帮助或希望扩展您的项目,请考虑聘请一家信誉良好的Node.js开发公司。