问题标签 [executioncontext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
549 浏览

scala - 带有 PlayFramework 2.6 的异步控制器

我正在使用带有 scalaFuture.successfulAction.asyncin playframework 2.6:

代码

我已按照此处的建议将执行上下文注入未来:

为了使控制器异步,我在这里使用了博客文章

错误

0 投票
2 回答
83 浏览

javascript - Javascript 执行上下文顺序

首先,我调用 func1,因此它位于全局执行上下文之上。然后它调用func2。我想知道的是,调用func2之后,func1是立即返回还是退出执行栈?或者是这样的,首先 func2 在 func1 执行上下文之上,它返回,然后 func1 返回,最后我们回到全局执行上下文?

0 投票
1 回答
1057 浏览

scala - 如何在有服务的 Akka 演员中使用 http 客户端?

我有一个 akka 演员,我想在该演员中使用一个简单的服务。该服务应使用客户端 api 的singleRequest 方法从本地网络获取某些内容。

我的演员:

在这里,我还创建了一个 ActorSystem 和一个 ExecutionContext,以便我的服务可以使用它:

如果我没有将 executionContext 传递到服务中,我会收到错误消息:

如果我没有将 actorsystem 传递到服务中,我会收到错误消息:

问题:

  • Actor 应该如何正确使用服务?
  • 传递 ActorSystem 和 ExecutionContext 是否正确,为什么它不会在幕后发生?
0 投票
2 回答
1054 浏览

javascript - JavaScript 中的执行上下文

我正在尝试掌握执行上下文并对 for 循环有疑问。

考虑以下...

在高层次上,我理解这些函数将在全局执行上下文中定义,一旦被调用,它们将创建自己的本地执行上下文,执行线程将移动到该上下文中,上下文的条目被推送到堆。

我的问题是,for 循环会有自己的执行上下文吗?如果是这样,并且执行上下文有自己的内存,那么输出如何仍然存在于 for 循环的上下文中?

这是因为 for 循环的本地执行上下文存在于 copyArrayAndMutate 的上下文中吗?

0 投票
1 回答
60 浏览

javascript - 为什么函数 B 的执行上下文不将其激活对象传递给函数作为作用域链对象,即 A 可以访问 B 的变量

嗨伙计们感谢您阅读我的问题。所以我从 2 天开始就在研究这个问题,但没有找到任何答案,所以感谢您的帮助。所以这里是下面的代码:

所以在这里,如果我运行这段代码,函数 A 会得到一个错误消息:“myVar is not defined”,因为它无法访问函数 B 的变量,这是我不理解的。

据我所知,当代码开始运行时,全局执行上下文将由 javascript 引擎创建,并且每次引擎遇到函数调用的括号 - 并且满足其他一些条件 - 时,javascript 都会创建一个执行上下文对象对于已调用的函数。

它应该包括作用域链、激活对象和“this”关键字和 在作用域链中应该是父执行上下文的所有变量/激活对象

因此,换句话说,其作用域链对象中的函数 A 应该具有函数 Bs 所有变量(但显然情况并非如此,这是我不明白的)。

但是如果我运行这段代码,其中函数 As 定义嵌套在函数 B 中:

所以现在函数 A 将可以访问在函数 B 中声明和初始化的变量。

但在我看来,函数 A 的定义位置并不重要,因为它是在函数 B 的上下文中调用的。

即使 this 关键字值是在创建阶段定义的,它的值也将基于函数的调用位置和方式,而不是定义的位置。

谢谢你们的阅读给我带来了大量的文字,我真的很感激。并感谢每一个答案或任何类型的文章或材料,这可以帮助我理解这个异常。

干杯,非常感谢。

0 投票
2 回答
434 浏览

javascript - 对于完整代码或嵌套函数级别是否立即进行提升

嘿伙计们。我不明白关于吊装的一些事情,这可能是我的错,但我没有找到任何答案,无论是在这里还是在谷歌上,这就是我问的原因,感谢阅读。

所以我不明白,当 javascript 引擎在下面获取我的代码并开始扫描时,是否会抛出具有扫描的所有函数和嵌套函数的整个代码,直到最后一个范围?并且所有函数的创建阶段都将在第一次扫描时进行(或者换句话说,完整的代码是否会被扫描一次并为每个函数准备好一切)?

或者提升是逐层嵌套的?所以我的意思是首先将提升在全局上下文中定义的那些功能?然后当其中一个函数被调用并且它的执行上下文执行阶段开始时,它的嵌套函数会被提升吗?

我正在调查这个问题,因为我真的不了解嵌套函数是如何记住的,它是在哪个词法环境/函数中定义的,如果它至少没有被提升,它有一个 [[Scopes]] 属性,它保留它的范围链

问题是我到目前为止看到的所有文章,甚至 ecmascript 6 文档也只说,如果扫描仪满足函数定义a,那么会发生提升,然后范围属性将使用范围链和变量对象创建,参数对象和“this”关键字,但我没有找到任何可以谈论的材料,如果嵌套函数(保存在变量对象中,并在那里加上对其在内存中的函数体的引用)至少也会被提升(同时,他们的父函数被提升)并且他们得到一个作用域链来记住他们的外部环境,如果他们从那里被外部环境调用

非常感谢阅读我的大量文字,如果你能回答它或者如果你有一篇关于这方面以及提升的文章,我真的很感激

0 投票
0 回答
200 浏览

javascript - 如何在 javascript 中找到执行上下文对象名称?

我有下面的代码试图显示调用 checkObj() 的上下文。例如,我需要将输出视为“a”,因为 checkObj 被调用为 a.checkObj()。目前,仅显示“this”的类型,即 Object{}

0 投票
0 回答
70 浏览

scala - 为什么 Visual VM 在计划线程时将线程显示为已停止?

我在 Scala 中创建了一个自定义执行上下文(FixedThreadPool 和 100 个工作人员)来运行 IO Bound Futures。在这些期货中,我正在对 Cassandra 进行 db 调用。

我已将上下文提供给与 DB 相关的 Futures。在日志消息中,我看到这些线程正在指定的线程池中执行。

在此处输入图像描述

然而,Visual VM 讲述了一个不同的故事。

在此处输入图像描述

这表明线程的 CPU 利用率为 0%。

我在这里想念什么?

0 投票
1 回答
369 浏览

c# - .net core AsyncLocal 失去了 System.Reactive 的上下文

我想使用 AsyncLocal 通过异步工作流传递信息以进行跟踪。现在我遇到了RX的问题。
Thios 是我的测试代码:

输出是:

Main 0(线程:5):AsyncLocal.Value => 0
Main 1(线程:6):AsyncLocal.Value => 1
OnNextNormal 0(线程:5):AsyncLocal.Value => 0
OnNextNormal 1(线程:6): AsyncLocal.Value => 1
OnNextDelayed 0(线程:4):AsyncLocal.Value => 0
OnNextDelayed 1(线程:4):AsyncLocal.Value => 0

如您所见, AsyncLocal.Value 不会流向延迟订阅的方法。
=> AsyncValue 在延迟轨道上丢失

据我了解,普通的 Subscribe() 不使用调度程序,而 Delay() 使用调度程序。
当我对两个调用都使用 ObserveOn() 时,两者的输出如下

Main 0(线程:5):AsyncLocal.Value => 0
Main 1(线程:7):AsyncLocal.Value => 1
OnNextNormal 0(线程:9):AsyncLocal.Value => 0
OnNextNormal 1(线程:9): AsyncLocal.Value => 0
OnNextDelayed 0(线程:4):AsyncLocal.Value => 0
OnNextDelayed 1(线程:4):AsyncLocal.Value => 0

=> AsyncValue 在每条轨道上都会丢失

有没有办法让 ExecutionContext 与 RX 一起流动?
我只发现了这一点,但这是另一个问题。他们解决了观察者的上下文如何流动的问题。我想流动发布者的上下文。

我想要实现的是:

  1. 来自“外部”的消息为我服务
  2. 在服务内分发消息 (RX)
  3. 记录消息时,使用 MessageId 格式化日志消息
  4. 我不想到处传递信息

提前感谢您的回答。

0 投票
1 回答
477 浏览

javascript - JS:严格模式下函数上下文中的“this”,MDN 规范与 chrome 67 实现不匹配

来自 MDN:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this ,它说:

然而,在严格模式下, this 的值保持在进入执行上下文时设置的任何值,因此,在以下情况下, this 将默认为 undefined:


这表明如果我(1)“使用严格”;(2) 在另一个函数中定义 f2,调用 f2 会为 f2 绑定外部函数的 this。但!

它不起作用...

给出这个输出:

注意:我从 mac osx 命令行使用 node v10.5.0 运行它。

注意 2:如果您在 devtools 中运行,则必须按照以下步骤使用 strict。

NOTE3:基本上,我想找到某种方法来获得内部,withoutIn1 或 withoutIn2 不会被定义。而且,我知道您可以通过显式绑定来执行此操作,但我想专门获取 MDN 文档中指定的行为。

如果您同意我的观点,MDN 应该将“this”文档更改为在“use strict”的函数上下文中,将其始终设置为未定义。(作者喜欢)

或者,Chrome 应该更改实现。(作者不喜欢)