>  기사  >  웹 프론트엔드  >  jQuery Promise를 사용하여 비동기 호출을 연결하고 호출 간에 데이터를 전달하는 방법은 무엇입니까?

jQuery Promise를 사용하여 비동기 호출을 연결하고 호출 간에 데이터를 전달하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-30 14:52:02627검색

How to Chain Asynchronous Calls and Pass Data Between Them with jQuery Promises?

jQuery Promise를 사용하여 비동기 호출 연결

어떻게 하면 jQuery Promise를 사용하여 세 개의 비동기 호출을 연결하고 그 사이에 데이터를 전달할 수 있나요?

순차적으로 실행해야 하는 세 개의 HTTP 호출을 처리할 때 jQuery Promise를 활용하여 호출을 연결하고 데이터 전송을 촉진하는 것을 고려하세요.

처음에는 두 함수에 대해 지연된 객체를 사용하려고 시도하면 부분적인 해결책이 나옵니다. 그러나 이 접근 방식을 세 가지 함수로 확장하려면 다른 전략이 필요합니다.

호출 연결 및 데이터 전달

각 호출에서 $.ajax에 의해 생성된 jqXHR 개체를 반환합니다. (). 이러한 객체는 Promise 인터페이스를 준수하며 .then()/.done()/.fail()/.always()를 사용하여 연결될 수 있습니다.

<code class="javascript">function first() {
   return $.ajax(...);
}

function second(data, textStatus, jqXHR) {
   return $.ajax(...);
}

function third(data, textStatus, jqXHR) {
   return $.ajax(...);
}</code>

주 함수 내에서 다음과 같이 함수를 연결합니다. .then()은 다음과 같습니다.

<code class="javascript">function main() {
    first().then(second).then(third);
}</code>

후속 함수에 전달된 data, textStatus 및 jqXHR 인수는 이전 함수의 $.ajax() 호출에서 시작됩니다. 이를 통해 각 함수는 이전 호출의 출력에 액세스하고 활용할 수 있습니다.

설명을 위해 아래 데모에서는 $.ajax(...) 대신 $.when('foo')를 사용하여 다음을 제공합니다. 약속 이행.

<code class="javascript">function main() {
    $.when('foo').then(second).then(third);
}</code>

이러한 방식으로 약속을 연결하고 데이터를 전달하면 세 가지 비동기 호출을 동기적이고 효과적으로 실행할 수 있습니다.

위 내용은 jQuery Promise를 사용하여 비동기 호출을 연결하고 호출 간에 데이터를 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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