1. 노드에서 타이머를 사용할 때의 문제점은 정확하지 않다는 것입니다. 예를 들어 setTimeout()은 작업이 10ms 후에 실행되도록 설정하지만 9ms 이후에는 작업이 5ms를 차지하며 타이머의 경우입니다. 다시 켜세요 , 4ms 지연되었습니다.
그렇습니다. 노드의 타이머에 관한 모든 것입니다.
2. 코드를 보세요:
process.nextTick(함수(){
console.log("지연된 실행");
});
console.log("정상실행 1");
console.log("정상실행 2");
console.log("정상실행 3");
console.log("정상실행 4");
이 예제를 보면 nextTick()이 주로 비동기 실행에 사용되는 것이 무엇인지 명확하게 알 수 있을 것 같습니다.
코드 보기:
setImmediate(함수(){
console.log("지연된 실행");
});
console.log("정상 실행");
setImmediate도 비동기적으로 실행되는 것을 발견했습니다.
그럼 it과 nextTick()의 차이점은 무엇인가요?
코드 보기:
코드 1:
process.nextTick(함수(){
console.log("nextTick 지연")
});
setImmediate(함수(){
console.log("setImmediate Delay");
});
console.log("정상 실행");
결과:
코드 2:
setImmediate(함수(){
console.log("setImmediate Delay");
});
process.nextTick(함수(){
console.log("nextTick 지연")
});
console.log("정상 실행");
결과:
코드 순서는 달라도 실행 결과는 같은 것을 발견했습니다.
결과에서 확인할 수 있습니다:
nextTick()의 콜백 함수 실행 우선순위가 setImmediate()보다 높습니다.
process.nextTick()은 유휴 관찰자에 속하고 setImmediate()는 검사 관찰자에 속합니다. 루프 검사의 각 라운드에서 유휴 관찰자는 I/O 관찰자보다 우선하고 I/O 관찰자는 검사보다 우선합니다. .
구체적인 구현 측면에서 process.nextTick()의 콜백 함수는 배열에 저장됩니다.
setImmediate()의 결과는 연결리스트에 저장됩니다.
동작 측면에서 process.nextTick()은 각 주기마다 배열의 모든 콜백 함수를 실행합니다.
그리고 setImmediate()는 매 주기마다 연결리스트의 콜백 함수를 실행합니다.
console.log("nextTick 지연 실행 1");
});
process.nextTick(함수(){
console.log("nextTick 지연 실행 2");
});
//두 개의 setImmediate() 콜백 함수 추가
setImmediate(함수(){
console.log("setImmediate 지연 실행 1");
Process.nextTick(함수(){
console.log("강력한 삽입");
});
});
setImmediate(함수(){
console.log("setImmediate 지연 실행 2");
});
console.log("정상 실행");
실행 결과를 보면 알 수 있는데, setImmediate()의 첫 번째 콜백 함수가 실행되면 두 번째 콜백 함수가 바로 실행되지 않고 먼저 nextTick()을 다시 setImmediate( )번 누르면 다음 사이클로 들어갑니다. 이렇게 설계한 이유는 각 루프가 빠르게 종료될 수 있도록 하고 CPU가 너무 많이 점유되어 후속 I/O 호출을 차단하는 것을 방지하기 위한 것입니다.
위는 node.js의 타이머 nextTick()과 setImmediate()의 차이점에 대한 정보입니다.

Vercel是什么?本篇文章带大家了解一下Vercel,并介绍一下在Vercel中部署 Node 服务的方法,希望对大家有所帮助!

gm是基于node.js的图片处理插件,它封装了图片处理工具GraphicsMagick(GM)和ImageMagick(IM),可使用spawn的方式调用。gm插件不是node默认安装的,需执行“npm install gm -S”进行安装才可使用。

本篇文章带大家详解package.json和package-lock.json文件,希望对大家有所帮助!

本篇文章给大家分享一个Nodejs web框架:Fastify,简单介绍一下Fastify支持的特性、Fastify支持的插件以及Fastify的使用方法,希望对大家有所帮助!

如何用pkg打包nodejs可执行文件?下面本篇文章给大家介绍一下使用pkg将Node.js项目打包为可执行文件的方法,希望对大家有所帮助!

node怎么爬取数据?下面本篇文章给大家分享一个node爬虫实例,聊聊利用node抓取小说章节的方法,希望对大家有所帮助!

本篇文章给大家分享一个Node实战,介绍一下使用Node.js和adb怎么开发一个手机备份小工具,希望对大家有所帮助!

先介绍node.js的安装,再介绍使用node.js构建一个简单的web服务器,最后通过一个简单的示例,演示网页与服务器之间的数据交互的实现。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

뜨거운 주제



