使用JavaScript检测生成器函数

发布于:2021-01-14 10:08:48

0

292

0

JavaScript 检测 器函数

在新的语法,功能和使用外部库的负载的当前JavaScript环境中,似乎比以往任何时候都更难确定要给您的函数什么甚至数据代表什么。当然,我们提出了Flow和TypeScript来提供帮助,但是我们不能指望那些总是可用的。这就是为什么我喜欢使用JavaScript进行自己的检测,尤其是在涉及函数类型时。

要检测一个函数是生成器函数还是异步生成器函数,可以使用以下代码:

// Sample generator function
  function* sampleGenerator() {}
  sampleGenerator.constructor.name
  // "GeneratorFunction"

  async function* sampleGenerator() {}
  sampleGenerator.constructor.name
  // "AsyncGeneratorFunction"

巧合的是,您还可以使用以下命令检测常规的异步功能:

async function asyncThing() {}
  asyncThing.constructor.name
  // "AsyncFunction"

了解您使用的代码是同步,异步还是生成器始终很重要,但是如果您使用的是外部库或要编写全面的测试,则可能需要进行这些类型的检测。