我有一个关于 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 是否提供了某种方式来等待另一个异步函数。
谢谢大家!