The jQuery doco shows an example where two $.ajax calls are made under the control of a $.when ('예제'제목 아래로 페이지). 괜찮아요하지만 내가하고 싶은 것은 (내가 호출을 준비하기 위해 다른 물건을 할 수있는) 함수 내에서 그 $.ajax
통화를 정의하는 것입니다jQuery/.when - 인수를 함수로 패키지합니까?
$.when($.ajax("/page1.php"), $.ajax("/page2.php"))
.then(myFunc, myFailure);
.
그래서 이런 식으로 뭔가 :
$.when(myAjaxCall1(), myAjaxCall2())
.then(goodFetches, badFetches);
나는 시도 그 같은 봐 기능 :
var myAjaxCall1 = function()
{
return $.ajax('https://httpbin.org/get?Z=Y,X,W');
};
var myAjaxCall2 = function()
{
return $.ajax('https://httpbin.org/get?A=B,C,D');
};
나는 각각 goodFetches
에 인수로 세 가지 요소의 배열을받을 수 있나요 myAjaxCall1
과 myAjaxCall2
하지만 위의 예제에 표시된대로 $.ajax
전화를 $.when
에 바로 입력하면받는 정보와 다릅니다. 그것은 기능에서 잘 작동합니다
$.when($.ajax("https://httpbin.org/get?Z=Y,X,W"),
$.ajax("https://httpbin.org/get?A=B,C,D"))
.then(goodFetches, badFetches);
난 당신이 그렇게 할 수 있다고 생각하는 $ 아약스 호출하기 때문에 응답을 기다리고 그래서 서버가 응답을하기 전에'return'을 호출하는 동안 반환 값이 없습니다. –
@FadhlyPermata -'$ .ajax()'가 반환하는 것과 동일한 함수로부터 약속을 반환 할 수 있습니다. – jfriend00
콜백의 이름을'goodFetches, badFetches'라고하면'$ .when'이하는 일을 정확히 이해하지 못한다. 그것은'.then (allGood, anyBad)'와 더 비슷합니다. (그리고 어떤 약속과도 마찬가지로, 둘 중 하나만 불릴 것입니다.) – Bergi