중첩된 약속 풀기
NodeJS에서 네트워크 코드로 작업하고 약속을 활용할 때 중첩된 약속을 접하는 것이 일반적입니다. 이 구조는 때때로 필요할 수 있지만 코드가 복잡해지고 읽을 수 없게 될 수도 있습니다. 더 깨끗하고 효율적인 접근 방식은 Promise를 중첩하는 대신 연결하는 것입니다.
중첩된 Promise의 문제
다음 예를 고려하세요.
exports.viewFile = function(req, res) { var fileId = req.params.id; boxContentRequest('files/' + fileId + '/content', req.user.box.accessToken) .then(function(response) { boxViewerRequest('documents', {url: response.request.href}, 'POST') .then(function(response) { boxViewerRequest('sessions', {document_id: response.body.id}, 'POST') .then(function(response) { console.log(response); }); }); }); };
이 코드 조각은 중첩된 약속을 사용하여 세 개의 API 요청을 연속으로 만듭니다. 올바르게 작동하지만 시각적으로 복잡하고 따라가기가 어렵습니다.
대신 Promise를 연결
Promise를 중첩하는 대신 체인으로 연결하려면 then 콜백을 수정하여 다음 프로미스를 반환하세요. promise:
exports.viewFile = function(req, res) { var fileId = req.params.id; boxContentRequest('files/' + fileId + '/content', req.user.box.accessToken) .then(function(response) { return boxViewerRequest('documents', {url: response.request.href}, 'POST'); }) .then(function(response) { return boxViewerRequest('sessions', {document_id: response.body.id}, 'POST'); }) .then(function(response) { console.log(response); }); };
이제 각각의 then 콜백은 후속 Promise를 반환하여 효과적으로 "연결"합니다. 함께. 각 Promise에서 확인된 값은 시퀀스의 다음 콜백에 대한 인수로 사용할 수 있습니다.
이 기술을 채택하면 특히 여러 API 요청으로 작업할 때 코드의 가독성과 유지 관리성을 향상시킬 수 있습니다. .
위 내용은 Node.js에서 중첩된 약속을 방지하고 코드 가독성을 향상하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!