根据我的理解,javascript 要么在浏览器中运行,要么在 Node.js 中作为后端运行。
浏览器或 Node.js,取决于您运行 javascript 的位置,将通过 Web API 或 C++ API 的处理函数阻止运行时(即网络调用、图像渲染等),然后将它们发送到事件循环并最终合并它们进入运行 javascript 的单线程。
我不明白的是,当我谷歌“是 javascript 同步还是异步”时,答案是 javascript 是异步的。
但这是真的吗?Javascript 是异步的,因为浏览器或 Node.js 后端中的 web API 或 c++ API,这使得线程在幕后,但 javascript 本身不是异步的?
如果javascript只有一个线程,它必须是一种同步语言吗?
我正在我的应用程序的数据表中实现搜索功能。为此,我找到了一个教程,可以在其中添加debounceTime,这样搜索不会立即发生(在我的示例中为150毫秒)。
这样做的目的是什么?
我问的原因是,当我将反跳时间从150毫秒更改为0时,搜索似乎更加顺畅和“更精细”。
我的猜测是,对于运行时还是服务器更好?这是一个微不足道的问题,但仍然使我好奇,希望能更好地理解一般的编码,在我的角度是Angular。
fromEvent(this.filter.nativeElement, 'keyup')
.pipe(
takeUntil(this._unsubscribeAll),
debounceTime(150),
distinctUntilChanged(),
)
.subscribe(() => {
if (!this.dataSource )
{
return;
}
this.dataSource.filter = this.filter.nativeElement.value;
});
}
Run Code Online (Sandbox Code Playgroud)