srl*_*rlm 3 javascript asynchronous node.js intel-edison
我希望能够采用一个不接受回调的函数,并确定它是否会异步执行.
特别是,我正在使用mraa在英特尔Edison上使用Node.js,并且它具有本机C++实现的功能i2c.readReg(address),因为它不接受回调.
或者我甚至没有以正确的方式接近这个?
你无法以编程方式确定异步性.从API中可以清楚地看出,如果它是异步的,那么在你使用它的方式中几乎必须有这些迹象.
如果函数是异步的,那么这意味着它不会直接从函数调用返回结果,因为函数在结果准备好之前返回.因此,函数的文档必须告诉您如何获取结果,如果它是异步的,则必须有另一种机制,例如:
如果函数直接返回函数调用的结果,那么它是同步的,并且在该调用期间不会运行其他Javascript代码.
如果函数不是异步的,那么将其转换为异步操作的唯一方法是在不同的线程或进程中运行它并将值编组回主线程(在值时调用主线程中的某种回调)准备好了).