问题标签 [order-of-execution]
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.
javascript - 调用函数的顺序 javascript
我在 javascript 中具有三个函数parsing
,init
和animate
. Parsing
必须首先调用,因为没有它,positions
数组不会被修改,这是函数init
需要的。奇怪的是, animate 需要由controls
创建的变量,init
但它们曾经被同时调用,并且以前可以工作。我已经尝试了调用函数的所有可能组合,但要么controls
是未定义的,要么positions
是。这是我的代码的最后一次迭代。
此外,console.log(positions)
显示了一个非空数组,但显示的错误仍然positions
是未定义的。有人知道为什么吗?
qt - 是否指定了 Qt Quick 子项的加载顺序?
例如,是否保证子项的初始化顺序与它们在源代码中出现的顺序相匹配?
注意:“孩子的初始化”是指“孩子及其所有孩子、后代、绑定等的初始化”。
javascript - clearInterval function working mysteriously
We all know that when a function on completion can return a value. Now consider the following line of code
Now, clearInterval()
takes the unique id returned by the setInterval()
function as an argument and this will only be returned once the function has completely run. What happens in my code, is that before my setInterval()
function runs, it gets cleared and this should not be possible as setinterval()
will not return anything until its callback function has been called.
How is the clearInterval()
function able to run before the setinterval()
function?
ruby - CI 在下一次运行中坚持使用 minitest 种子
我们有 CircleCI,它在每次 git 推送到 GitHub 时运行 rake 测试。我们在 rails cbra 应用程序上使用 mintest。
我上一次“构建”失败了。我相信这是因为执行顺序。构建日志显示“运行选项:--seed 23914”
如何坚持使用相同的种子“--seed 23914”构建/测试下一个 git push(该 push 包含其他几个测试修复)
c - write 和 printf 乱序输出
在编写 ac 程序时,我遇到了 printf 和 write 的一个令人费解的行为。似乎在某些情况下 write 是在 printf 之前调用的,即使它在代码中是在它之后(printf 是异步的吗?)。此外,如果 printf 中有两行,则之后的输出似乎插入在它们之间。我的问题是什么导致了这种行为,我怎么知道什么时候会发生什么?其他输出函数(例如 puts)呢?我可以在文档中查找某些内容以了解它们与其他函数的行为方式。示例代码:
输出:
file - 如何在 Gradle 中检查文件的当前内容
首先也是最重要的......我是Gradle的新手。话虽如此,我喜欢它。不幸的是,我遇到了障碍。我有一系列任务是部署过程的一部分。一 ( buildProject
) 调用一个 shell 脚本,作为其进程的一部分,它REVISION
使用新的“版本”更新一个文件。之后deployToRemote
调用任务将最新版本部署到服务器。它调用getCurrentVersion
从REVISION
文件中读取最新版本。下面概述了所有这些任务。问题在于,尽管有正确的语句,它似乎首先getLatestVersion
被调用,因为它总是在文件中列出的“PRE”版本中读取。如何确保在运行后读取文件?mustRunAfter
buildProject
REVISION
getLatestVersion
buildProject
以下是任务:
构建项目:
部署到远程
获取当前版本
我的build.gradle
文件最后有这个:
该REVISION
文件如下所示;
javascript - 脚本在 /body 之前,但它在页面加载之前运行
我是 web 开发的新手,我正在尝试使用 express 的 node.js。
我有以下目录结构:
第一个 App
---- node_modules
---- public
-------- scripts
------------ additems.js
---- views
-------- home .ejs
---- app.js
粗体是文件夹,斜体是文件。
这是文件 additem.js:
这是 home.ejs 文件:
这是 app.js 文件:
在页面加载之前运行javascript的问题
我知道这一点,因为警报消息出现在其他任何内容之前。此外,我尝试使用一些 DOM 元素,但它们已作为未定义返回。
搜索网络我可以看到我的脚本位置在标签之前是正确的,据说它应该最后运行。
我在这里想念什么?
我知道使用 onload 事件的可能性,但我想避免它,除非它是必须的,此外我想了解为什么脚本最终没有按预期运行。
更新 - 已解决
感谢 Scott Marcus 的贡献,帮助我解决了这个问题。
事实上,有一个双重错误。
1-我使用了 alert() ,这不是你提到的提示。
2- 我没有在 alert() 之后提及代码,因为我从受信任的网站复制了它,我希望问题尽可能简短。但是,代码有一个错误,导致它无法以正确的方式运行。
谢谢大家。
c++ - 在构造 std::tuple 时定义元素初始化顺序
我想将元素的初始化值存储在一个单独的元组内的元组中,以便我可以将相同的值用作相应类型的其他元组的预设值。
对我的程序来说,元组元素的构造函数以从左到右的顺序被调用是非常重要的(否则它充其量只会变得非常混乱)。
这是我的程序的简化版本:
所以我用in的构造函数初始化列表初始化std::tuple<Elems...> elements
成员。这应该使用 pIniter 中的值定义的类型的相应初始化值来初始化每个元素。类型是 Widget 层次结构中每个成员的类型(例如 a或 an ),它是层次结构成员应该初始化的类型。但是发生这种情况的顺序是从右到左,而我需要从左到右。Widget<Elems...>
std::tuple<typename Elems::initer_t...>
Widget<Elems...>
elements
initer_t
initer_t
Widget<typename...>
Element
程序的输出是
但我想颠倒这个顺序。
在这种情况下我该怎么做?
java - Java 在对象引用返回后执行自增操作
我有这个代码:
我了解到,在 return 语句之后不再执行代码,并且 increment++ 会在下一个表达式处增加值。所以对我来说,array[0]
不应该增加数组的第一个元素似乎是合乎逻辑的。
但是输出数组是 {1,1,2,3,4,5,6,7,8,9}
unity3d - 播放器预制脚本执行顺序
不确定是什么问题,所以我将尝试描述结果。
我有一个播放器对象和一个与播放器脚本中的变量相对应的 UI 栏,一切都按预期工作,然后我删除我的播放器对象并将其替换为播放器的相同预制件,我将播放器对象重新分配给所有字段在先前附加的检查器中。
现在,当我点击播放时,UI 就像在播放器控制器脚本之后执行 UI 脚本一样,并且一些值已关闭,为了测试这一点,我更改了“脚本执行顺序”面板中的执行顺序,这似乎解决了这个问题,但我不希望这样做。
我想知道什么会导致这种行为以及如何避免它,希望我的解释足够清楚。
谢谢。