.hide("slow") 是同步方法还是异步方法?

.hide("slow") is synchronous or Asynchronous method?

我们知道 $.ajax() 是一个异步方法,因为下一条语句在 ajax() 方法完全执行之前开始执行并且 'ajax()' 继续并行地做他的事情,并且 hide() 是一个同步方法,因为它会立即隐藏元素,下一条语句将在 hide() 真正完成他的整个任务时执行,但我在 hide("slow") 的情况下真的很困惑。似乎是异步的,但我读过,它在浏览器中设置了计时器,并且一切都自动发生(现在 hide("slow") 没有并行执行任何操作)所以在某种程度上,它在下一条语句开始执行之前也已经完成了它的全部任务,所以hide("slow") 似乎也是一种同步方法,

我对同步异步这个概念很困惑

谁能帮我理解这个概念?

.hide(“slow”) is synchronous or Asyncronous method

对方法的调用是同步的,但它启动了一个异步过程。所以我们通常会松散地称它为 "asynchronous method"(在这种情况下,你给它一个持续时间参数)。

当你调用hide("slow")时,你同步告诉jQuery开始随着时间的推移慢慢隐藏元素的过程。在对 hide 的初始调用完成后,实际执行此操作的过程是异步发生的。 (ajax 也是如此:方法本身是同步的,但它启动的过程——执行 XMLHttpRequest——异步继续。)

通常如果方法的工作在调用期间完成,我们称它为同步方法,但如果它只开始 稍后完成的工作,我们称之为异步方法。从技术上讲,该方法本身不是异步的,只是它启动的整个过程,但是...

当然,

hide 本身既是同步方法又是异步方法,具体取决于您传递给它的参数:如果您调用它时没有持续时间 (.hide()),它就是同步的;如果你用持续时间调用它(.hide("slow").hide(400)),它是异步的。

另外,对于你的另一个问题,

I am very confused about this Synchronous Asynchronous concept Can someone help me to understand this concept ?

当您调试一行代码并且该行直到执行完成才传递到下一行时,它的同步操作是因为同一线程正在执行代码的完整执行。

另一方面,如果调试在实际操作完成之前传递到下一行,那么它是异步操作,因为在你上面的问题中,隐藏和动画是在不同线程的后台执行的,而主线程开始执行下一行。

希望它能澄清你上面的问题。