Node.js(ES7)의 Promise 실행 및 삭제
Node.js의 비동기 프로그래밍에는 Promise 작업이 포함되는 경우가 많습니다. 약속은 비동기 작업의 최종 완료 또는 실패를 나타냅니다. 특정 시나리오에서는 완료될 때까지 기다리지 않고 비동기 작업을 시작하려고 할 수 있습니다. 이를 약속의 "실행 후 잊어버리기"라고 합니다.
다음 코드 조각을 고려하세요.
redisClientAsync.delAsync('key'); return await someOtherAsyncFunction();
비동기 함수 내에서는 대기를 사용하지 않고도 첫 번째 줄을 실행할 수 있습니다. 이는 Promise를 생성하고 즉시 폐기합니다.
이것이 허용됩니까?
예, 이 방식으로 비동기 작업을 실행할 수 있습니다. Promise를 실행하고 잊어버리면 두 개의 비동기 함수(Promise 생성 및 someOtherAsyncFunction 함수)가 동시에 실행됩니다.
오류 처리
이 접근 방식의 한 가지 잠재적인 문제는 다음과 같습니다. delAsync에 의해 생성된 Promise가 거부되면 알림을 받지 않습니다. 이로 인해 처리되지 않은 거부가 발생하여 결국 프로세스가 중단될 수 있습니다.
결과 무시에 대한 대안
비동기 작업의 결과에 관심이 없다면 몇 가지 방법이 있습니다. 처리 방법:
무효 연산자: void 연산자를 사용하여 결과를 삭제합니다.
void (await someAsyncFunction());
catch 및 무시: 빈 값이 있는 catch 메서드를 사용하여 예외를 무시합니다. handler:
... someAsyncFunction().catch(function ignore() {}) ...
병렬 실행: 여전히 다른 비동기 작업을 기다리고 싶지만 특정 작업의 결과는 신경 쓰지 않는 경우 다음을 사용하세요. Promise.all과 함께 array:
var [_, res] = await Promise.all([ someAsyncFunction(), // result is ignored, exceptions aren't someOtherAsyncFunction() ]); return res;
결론
Node.js에서는 Promise를 실행하고 잊어버릴 수 있지만, 알아두는 것이 중요합니다 거부를 무시하는 것과 관련된 잠재적 위험에 대해 설명합니다. 이 기술을 사용하기 전에 비동기 작업의 결과에 정말로 관심이 없는지 신중하게 고려하십시오. 또한 관심이 없는 결과를 처리하는 데 사용할 수 있는 대체 접근 방식도 있습니다.
위 내용은 Node.js에서 약속을 실행하고 잊어버리는 것이 허용됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!