>  기사  >  웹 프론트엔드  >  node.js의 forEach()는 동기식인가요, 비동기식인가요?_node.js

node.js의 forEach()는 동기식인가요, 비동기식인가요?_node.js

WBOY
WBOY원래의
2016-05-16 16:17:212003검색

콜백 함수를 사용하는 노드의 거의 모든 위치는 콜백 함수 뒤의 코드, 특히 데이터베이스 작업보다 먼저 실행될 가능성이 높습니다. 물론 노드는 파일 작업과 같은 동기 버전의 함수도 제공합니다. fs.readFileSync()는 fs.readFile()의 동기 버전입니다.

그럼 질문은 forEach()가 비동기적인가요?입니다. 논리적으로 말하면 Sync가 추가되지 않으면 비동기식이어야 합니다.

코드 복사 코드는 다음과 같습니다.

var arr = ['a', 'b', 'c'];
var str = '123';
arr.forEach(함수(항목) {
str = 항목;
While (true) {}; //무한 루프를 사용하여 잼~~
});
console.log(str);

위 코드를 실행하면 아무런 출력도 없이 멈춥니다. .

그래서 노드의 forEach()는 동기식입니다! !

처음 노드를 사용할 때는 이 문제에 대해 생각하지 못했습니다. 테스트를 하다가 갑자기 오류가 발생하여 다음과 같은 문제가 발생했습니다. 이전 코드가 잘못 작성되었습니다.

어떤 경우에는 forEach를 비동기식으로 처리해야 한다면 구글에서 검색해서 node-array가 있으면 시도해보시면 됩니다~~ 포털: https://github.com/cfsghost /노드 배열

이 작품은 http://www.cnblogs.com/ImYZF에서 제작되었습니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.