Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

Gulp 오류에 대한 빠른 수정:"다음 작업이 완료되지 않았습니다... 비동기 완료 신호를 잊으셨습니까?"

Gulp에서 작업할 때 다음 오류가 발생할 수 있습니다.

The following tasks did not complete... Did you forget to signal async completion?

Gulp 4에서는 모든 작업이 자동으로 비동기식이기 때문에 발생합니다.

동기 함수는 차례로 실행되며 각 함수는 실행되기 전에 이전 함수가 완료될 때까지 기다려야 합니다. 반면에 비동기 함수는 이전 함수의 결과를 기다리는 동안 실행을 시작할 수 있습니다.

이렇게 하면 프로세스가 차단되지 않기 때문에 프로세스가 더 효율적입니다. 그러나 함수가 언제 완료되었는지 알기 위해서는 함수가 완료되었다는 명시적 기표를 반환해야 합니다. src()와 같은 대부분의 Gulp 작업 또는 dest() 노드 스트림을 반환하므로 걱정할 필요가 없습니다.

그러나 스트림을 반환하지 않는 사용자 정의 함수가 있는 경우 스트림 끝에 콜백 함수를 추가해야 합니다. 그렇지 않으면 해당 오류 메시지가 표시됩니다.

오류를 수정하려면 다음 예와 같이 콜백 함수를 추가해야 합니다.

function helloWorld(cb){
    console.log('Hellooooo world!');
    cb();
}

helloWorld에서 함수에 cb()를 추가했습니다. 매개변수로 설정한 콜백 함수를 호출한 다음 함수의 끝에서 호출합니다. 이것을 추가하면 비동기 완료를 알리고 발생하는 오류를 수정해야 합니다.

Gulp 설정 방법에 대한 더 자세한 정보가 필요하면 내 과정인 Gulp 4 for Beginners를 확인하세요!