중첩된 구조를 제거하기 위한 Promise 연결
비동기 작업으로 작업할 때 Promise는 콜백을 처리하고 코드 가독성을 유지하는 편리한 방법을 제공합니다. 그러나 중첩된 Promise는 코드를 빠르게 복잡하고 따르기 어렵게 만들 수 있습니다. 이 문서에서는 중첩된 Promise를 제거하고 명확성을 높이기 위해 연결하는 방법에 대해 설명합니다.
접근 방식
중첩된 Promise를 제거하려면 각 then 콜백에서 새 Promise를 반환합니다. 이를 통해 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); }); };
이 코드에서 각 콜백은 후속 요청에 대한 약속을 반환하여 실행이 순차적으로 계속되도록 합니다.
일반 패턴
Promise를 연결하는 패턴은 다음과 같습니다. 다음:
somePromise.then(function(r1) { return nextPromise.then(function(r2) { return anyValue; }); }) // resolves with anyValue || \||/ \/ somePromise.then(function(r1) { return nextPromise; }).then(function(r2) { return anyValue; }) // resolves with anyValue as well
새 Promise를 반환할 때 해당 Promise의 결과 값이 체인의 다음 핸들러로 전달됩니다. 또는 핸들러가 반환한 Promise가 체인의 마지막 Promise인 경우 해당 Promise의 확인 값이 소비자에게 전달됩니다.
위 내용은 더욱 깔끔한 비동기 JavaScript 코드를 위해 Promise를 중첩 해제하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!