问题标签 [synchronous]

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 回答
1847 浏览

asynchronous - 异步与同步消息

异步与同步消息传递(java)之间有什么区别,以及它如何影响消息发送方/接收方的实现方式。J2EE 体系结构如何决定选择其中一个。

0 投票
3 回答
28526 浏览

javascript - ajax jquery同步回调成功

我有这个进行ajax调用的函数。我在最后一段代码注释中描述了这个问题。

根据代码注释中描述的问题,哪些更改最适合这种情况?

0 投票
7 回答
31980 浏览

jquery - jQuery同步动画

在很多情况下,我希望动画能够同步执行。特别是当我希望制作一系列连续动画时。

有没有一种简单的方法可以使 jQueryanimate函数调用同步?

我想到的唯一方法是在动画完成时设置一个标志为真并等待这个标志。

0 投票
4 回答
4517 浏览

c - 等待文件可用于 Win32 读取

我正在通过ReadDirectoryChangesW同步调用来查看目录。CreateFile当有新文件可用时,我尝试使用GENERIC_READand立即访问它FILE_SHARE_READ,但这给了我ERROR_SHARING_VIOLATION. 在我尝试读取文件时,将文件放入监视目录的过程尚未完成写入。

有没有办法可靠地等待文件可供读取?我可以将该方法放入如下所示的循环中,但我希望有更好的方法。

0 投票
5 回答
12882 浏览

jquery - jquery同步函数

有没有办法在另一个函数完成后运行一个函数?例如:

我只希望 doSomethingElse() 在 doSomething 完成后运行。这可能吗?

0 投票
1 回答
841 浏览

jquery - 如何使用 jQuery 同步运行事件触发器及其绑定方法?

下面的函数在页面准备就绪时调用,旨在通过各种锚链接模拟点击,并触发这些锚的绑定方法,从而重现通过手动点击相同链接配置的相同 DOM。

两个事件触发器中,第一个成功执行了绑定的方法。但是,第二个事件触发器的目标锚点在第一个事件的方法完成之前不存在,因为它将第二个事件的目标锚点插入到 DOM 中。第二个触发器失败,我唯一的猜测是这是由于无法找到它的目标锚点,因此表明在调用第二个触发器时第一个触发器还没有完全完成。我不会认为是这种情况 - 或者我的代码是否以某种方式在多个线程中运行?

简而言之,我需要有人确认触发器及其方法是完全同步执行的,所以我知道我是否在错误的地方寻找错误。提前谢谢了。

0 投票
2 回答
4774 浏览

javascript - 模拟同步 XmlHttpRequest

我已经阅读了一些其他相关问题(Pattern for wrapping an Asynchronous JavaScript function to make it synchronous & Make async event synchronous in JavaScript &可能还有更多),但我只是想确保用尽所有可能性。

是否可以使用 setInterval 或 setTimeout 将异步 XmlHttpRequest “转换”为准同步?

这个想法是,在 Ajax 请求成功后,将设置一个变量,这将是一个 while 循环(已调用 setInterval 或 setTimeout,以及适当的回调函数)退出的信号。还是我从根本上误解了 setInterval 和/或 setTimeout 的能力(或限制?)?

0 投票
10 回答
158399 浏览

javascript - 如何强制顺序 Javascript 执行?

我只找到了涉及类、事件处理程序和回调的相当复杂的答案(在我看来,这似乎是一种大锤方法)。我认为回调可能有用,但我似乎无法在最简单的情况下应用这些。看这个例子:

在这种情况下,第二个功能在第一个功能之前完成;强制第二个函数延迟执行直到第一个函数完成的最简单方法是什么(或者有什么?)?

- -编辑 - -

所以这是一个垃圾示例,但感谢 David Hedlund,我在这个新示例中看到它确实是同步的(以及在测试过程中使我的浏览器崩溃!):

由于我的实际问题是 jQuery 和 IE,如果我自己无法到达任何地方,我将不得不发布一个单独的问题!

0 投票
3 回答
1927 浏览

multithreading - 线程同步队列的最佳方法

我有一个队列,我可以在其中将不同的线程排入队列,所以我可以保证两件事:

  1. 请求被一一处理。
  2. 请求按到达顺序处理

第二点很重要。否则一个简单的临界区就足够了。我有不同的请求组,只有在一个组内必须满足这些点。来自不同组的请求可以并发运行。

它看起来像这样:

编辑:我已经删除了实际的实现,因为它隐藏了我想要解决的问题

我需要这个,因为我有一个基于 Indy 的 Web 服务器,它接受 http 请求。首先,我为请求找到一个对应的会话。然后为该会话执行请求(代码)。我可以为同一个会话获得多个请求(读取我可以在第一个仍在处理时获得新请求)并且它们必须以正确的到达顺序一个接一个地执行。所以我寻求一个可以在这种情况下使用的通用同步队列,以便可以对请求进行排队。我无法控制线程,每个请求都可以在不同的线程中执行。

解决此类问题的最佳(通常)方法是什么?问题是 Enqueue 和 Dequeue 必须是原子操作,以便保持正确的顺序。我当前的实现有一个很大的瓶颈,但它确实有效。

编辑:波纹管是原子入队/出队操作的问题

你通常会做这样的事情:

现在这里的问题是这不是原子的。如果您有一个线程已经在队列中,而另一个线程来并调用 Enqueue,则可能会发生第二个线程将离开临界区并尝试阻塞自己。现在线程调度程序将恢复第一个线程,它将尝试解除对下一个(第二个)线程的阻塞。但是第二个线程还没有被阻塞,所以什么也没有发生。现在第二个线程继续并阻塞自己,但这是不正确的,因为它不会被解除阻塞。如果阻塞在临界区内,则临界区永远不会离开,我们就会陷入死锁。

0 投票
3 回答
6549 浏览

jquery - 通过jquery返回字符串的同步ajax调用

我正在对 ajax 进行 jQuery 同步调用——返回类型设置为“json”——但是返回数据作为字符串返回。有什么我做错了,或者有没有将字符串转换为对象?

ajax 调用正在工作,我可以在调试器中看到结果,只是返回的数据在字符串中。