我有一个关于 Node.js 中的异步方法 API 的问题。
所以,我有一个函数,我们称之为longSetup(callback)
。
顾名思义,longSetup(callback)
需要很长时间才能完成。但是,此设置可以与其他操作并行完成。所以,在longSetup()
发生的时候,我也可以设置其他的东西。
因此,一旦longSetup()
完成,该类就准备好执行另一个功能,例如serveData()
.
现在,我不知道什么时候serveData()
会被调用。serveData()
基于用户 I/O,可以在longSetup()
完成前调用,也可以在完成后调用longSetup()
。另外,我从不直接调用serveData()
.
确实需要longSetup()
先完成才能serveData()
成功执行,但我想利用longSetup()
可以异步完成的事实,因此我不想实现同步版本的longSetup()
; 我宁愿在那段时间进行其他设置。
由于serveData()
可以随时调用,我想检查调用longSetup()
时是否完成serveData()
。如果完成,请继续serveData()
。如果没有,请等到longSetup()
完成,然后继续执行。由于longSetup()
只调用一次,因此在大多数情况下我不会等待。此外,如果用户 I/O 需要时间,longSetup()
也将在serveData()
第一次调用时完成。
我已经经历了几个关于在执行另一个函数之前等待一个函数返回/在另一个函数之后触发一个函数等的 SO 问题和答案,并且我了解 Node 的异步方式以及为什么使用回调。但是,这是一个不同的用例,我想知道 node 是否提供了某种方式来等待另一个异步函数。
谢谢大家!