问题标签 [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.
scala - 带有 PlayFramework 2.6 的异步控制器
我正在使用带有 scalaFuture.successful
的Action.async
in playframework 2.6:
代码
我已按照此处的建议将执行上下文注入未来:
为了使控制器异步,我在这里使用了博客文章
错误
javascript - Javascript 执行上下文顺序
首先,我调用 func1,因此它位于全局执行上下文之上。然后它调用func2。我想知道的是,调用func2之后,func1是立即返回还是退出执行栈?或者是这样的,首先 func2 在 func1 执行上下文之上,它返回,然后 func1 返回,最后我们回到全局执行上下文?
scala - 如何在有服务的 Akka 演员中使用 http 客户端?
我有一个 akka 演员,我想在该演员中使用一个简单的服务。该服务应使用客户端 api 的singleRequest 方法从本地网络获取某些内容。
我的演员:
在这里,我还创建了一个 ActorSystem 和一个 ExecutionContext,以便我的服务可以使用它:
如果我没有将 executionContext 传递到服务中,我会收到错误消息:
如果我没有将 actorsystem 传递到服务中,我会收到错误消息:
问题:
- Actor 应该如何正确使用服务?
- 传递 ActorSystem 和 ExecutionContext 是否正确,为什么它不会在幕后发生?
javascript - JavaScript 中的执行上下文
我正在尝试掌握执行上下文并对 for 循环有疑问。
考虑以下...
在高层次上,我理解这些函数将在全局执行上下文中定义,一旦被调用,它们将创建自己的本地执行上下文,执行线程将移动到该上下文中,上下文的条目被推送到堆。
我的问题是,for 循环会有自己的执行上下文吗?如果是这样,并且执行上下文有自己的内存,那么输出如何仍然存在于 for 循环的上下文中?
这是因为 for 循环的本地执行上下文存在于 copyArrayAndMutate 的上下文中吗?
javascript - 为什么函数 B 的执行上下文不将其激活对象传递给函数作为作用域链对象,即 A 可以访问 B 的变量
嗨伙计们感谢您阅读我的问题。所以我从 2 天开始就在研究这个问题,但没有找到任何答案,所以感谢您的帮助。所以这里是下面的代码:
所以在这里,如果我运行这段代码,函数 A 会得到一个错误消息:“myVar is not defined”,因为它无法访问函数 B 的变量,这是我不理解的。
据我所知,当代码开始运行时,全局执行上下文将由 javascript 引擎创建,并且每次引擎遇到函数调用的括号 - 并且满足其他一些条件 - 时,javascript 都会创建一个执行上下文对象对于已调用的函数。
它应该包括作用域链、激活对象和“this”关键字和 在作用域链中应该是父执行上下文的所有变量/激活对象
因此,换句话说,其作用域链对象中的函数 A 应该具有函数 Bs 所有变量(但显然情况并非如此,这是我不明白的)。
但是如果我运行这段代码,其中函数 As 定义嵌套在函数 B 中:
所以现在函数 A 将可以访问在函数 B 中声明和初始化的变量。
但在我看来,函数 A 的定义位置并不重要,因为它是在函数 B 的上下文中调用的。
即使 this 关键字值是在创建阶段定义的,它的值也将基于函数的调用位置和方式,而不是定义的位置。
谢谢你们的阅读给我带来了大量的文字,我真的很感激。并感谢每一个答案或任何类型的文章或材料,这可以帮助我理解这个异常。
干杯,非常感谢。
javascript - 对于完整代码或嵌套函数级别是否立即进行提升
嘿伙计们。我不明白关于吊装的一些事情,这可能是我的错,但我没有找到任何答案,无论是在这里还是在谷歌上,这就是我问的原因,感谢阅读。
所以我不明白,当 javascript 引擎在下面获取我的代码并开始扫描时,是否会抛出具有扫描的所有函数和嵌套函数的整个代码,直到最后一个范围?并且所有函数的创建阶段都将在第一次扫描时进行(或者换句话说,完整的代码是否会被扫描一次并为每个函数准备好一切)?
或者提升是逐层嵌套的?所以我的意思是首先将提升在全局上下文中定义的那些功能?然后当其中一个函数被调用并且它的执行上下文执行阶段开始时,它的嵌套函数会被提升吗?
我正在调查这个问题,因为我真的不了解嵌套函数是如何记住的,它是在哪个词法环境/函数中定义的,如果它至少没有被提升,它有一个 [[Scopes]] 属性,它保留它的范围链
问题是我到目前为止看到的所有文章,甚至 ecmascript 6 文档也只说,如果扫描仪满足函数定义a,那么会发生提升,然后范围属性将使用范围链和变量对象创建,参数对象和“this”关键字,但我没有找到任何可以谈论的材料,如果嵌套函数(保存在变量对象中,并在那里加上对其在内存中的函数体的引用)至少也会被提升(同时,他们的父函数被提升)并且他们得到一个作用域链来记住他们的外部环境,如果他们从那里被外部环境调用
非常感谢阅读我的大量文字,如果你能回答它或者如果你有一篇关于这方面以及提升的文章,我真的很感激
javascript - 如何在 javascript 中找到执行上下文对象名称?
我有下面的代码试图显示调用 checkObj() 的上下文。例如,我需要将输出视为“a”,因为 checkObj 被调用为 a.checkObj()。目前,仅显示“this”的类型,即 Object{}
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 一起流动?
我只发现了这一点,但这是另一个问题。他们解决了观察者的上下文如何流动的问题。我想流动发布者的上下文。
我想要实现的是:
- 来自“外部”的消息为我服务
- 在服务内分发消息 (RX)
- 记录消息时,使用 MessageId 格式化日志消息
- 我不想到处传递信息
提前感谢您的回答。
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 应该更改实现。(作者不喜欢)