我知道,要创建一个异步函数,我们只需要在里面调用一个异步函数,如 setTimeout()
并传递一个回调。
但是如何在不使用任何预制函数的情况下,在本地创建这样的函数呢?
我知道查询数据库的函数有一个异步行为,那么他们如何在不使用类似于 setTimeout()
在他们的原始实现中?
但是如何在不使用任何预建函数的情况下,在本地创建异步函数呢?
你不能这样做。
我知道查询数据库的函数有一个异步行为,在它们的原始实现中不使用类似setTimeout()的东西,它们如何做到这一点?
它们通常会使用网络或文件系统套接字连接到数据库,对于这些函数,有内置的异步函数(在收到响应时调用回调等),它们是建立在这些函数上的。
具体到node.js来说,当然也可以写一个 附加物 到引擎本身,向JavaScript环境提供这样一个 "原生异步 "函数。
这样的函数通常不是写在 在 JavaScript。
它们通常是用与运行时引擎相同的编程语言编写的,然后插入到运行时引擎中,并暴露出 作为 一个JavaScript函数。
这就是为什么如果你要运行 XMLHttpRequest.toString()
在浏览器中,你会得到 "function XMLHttpRequest() { [native code] }"
而不是函数的实际代码。