8.4.1 EnqueueJob ( queueName, job, arguments )

EnqueueJob 抽象操作需要三个参数:queueNamejob arguments。 它执行以下步骤:

  1. 断言:Type(queueName) 是 String 类型,其值是此内置系统识别的 Job 队列的名称。
  2. 断言:job Job 的名称。
  3. 断言:arguments 变为 一个具有与 Job 所需的参数数量相同数量的元素的 List。
  4. 使 callerContext 变为 运行的执行上下文。
  5. 使 callerRealm 变为 callerContext Realm
  6. 使 callerScriptOrModule 变为 callerContext 的 ScriptOrModule。
  7. 使 pending 变为 PendingJob{ [[Job]]: job, [[Arguments]]: arguments, [[Realm]]: callerRealm, [[ScriptOrModule]]: callerScriptOrModule, [[HostDefined]]: undefined }。
  8. 执行任何内置系统或主机环境定义的 pending 的处理。 这可能包括修改 [[HostDefined]] 字段或任何其他中止字段。
  9. 在由 queueName 命名的 Job 队列的后面添加 pending
  10. 返回 NormalCompletion(empty)。

results matching ""

    No results matching ""