gpt4 book ai didi

javascript - Node.js:如何以编程方式确定异步?

转载 作者:搜寻专家 更新时间:2023-10-31 23:31:37 24 4
gpt4 key购买 nike

我希望能够接受一个不接受回调的函数,并确定它是否会异步执行。

特别是,我正在使用 mraa 在 Intel Edison 上使用 Node.js ,并且它具有原生 C++ 实现的函数,例如不接受回调的 i2c.readReg(address)

  1. 如何确定某个函数是否正在阻塞其他系统进程的处理器?
  2. 如何确定其他 JS 是否可以在此期间运行?

或者我什至没有以正确的方式处理这个问题?

最佳答案

您无法真正以编程方式确定异步性。从提供的 API 中应该很清楚,因为如果它是异步的,那么在您使用它的方式中几乎必须有这种迹象。

如果一个函数是异步的,那么这意味着它不会直接返回函数调用的结果,因为函数在结果准备好之前就返回了。因此,函数的文档必须告诉您如何获取结果,如果它是异步的,则必须有另一种机制,例如:

  1. 一个你可以传入的回调函数
  2. 返回的 promise
  3. 对象上的某种事件监听器
  4. 一些其他通知机制
  5. 检查函数的代码
  6. 函数命名约定(例如node.js使用的后缀“Sync”)

如果函数直接返回函数调用的结果,那么它是同步的,其他 Javascript 代码将不会在该调用期间运行。


如果一个函数还不是异步的,那么将其转换为异步操作的唯一方法是在不同的线程或进程中运行它,并将值编码回主线程(在主线程中调用某种回调当值准备好时)。

关于javascript - Node.js:如何以编程方式确定异步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29000772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com