jQuery: Ajax 호출 성공 후 데이터 반품하십시오.
내가 이런 간단한 전화 뭔가를해야합니다 어디에 있는 스크립트입니다 날 다시 보기입니다 값을 문자열으로.
function testAjax() {
$.ajax({
url: "getvalue.php",
success: function(data) {
return data;
}
});
}
내가 이 같은 일이 호출하십시오 신앙이니라
var output = testAjax(svar); // output will be undefined...
값을 되돌려줍니다 미확인범은 어떻게 합니까? 아래 코드를 작동합니까 인컨텍스트 않는 듯 하다.
function testAjax() {
$.ajax({
url: "getvalue.php",
success: function(data) {
}
});
return data;
}
444
5
39, 아무것도 하지 않는 함수에서 너회가 can& 복귀하십시오 비동기적입니다. 약속하나요 너희는너희가 반환할 수 있다. 이러한 질문에 대한 답을 어떻게 내가 내 jQuery 작업하십시오 공약을 설명했다.
테스타이아스 다음과 같은 함수를 작성할 수 있습니다
그런 다음 전달하십시오 약속하나요 다음과 같습니다.
약속하나요 보관할 수 있습니다, 주위에 있는 함수 호출을 사용할 수 있습니다 인수로 전달할 수 있습니다, 다시 사용할 수 있습니다, 하지만 함수에서 때 마지막으로 AJAX 호출 할 수 있는 데이터의 반환됨 의해 다음과 같은 해야 할 수 있습니다.
내가 위에서 설명한 (2011년 3월) 는 사용 방법은 [jquery 우회된 객체에는] (https://api.jquery.com/category/deferred-object/) 에서 동기식 코드 값을 반환하는 달성됩니다 비동기적으로 뭔가 해야 될 것 "이라고 말했다. 그러나 이 두 가지 - 값을 반환하는 함수 호출 할 수 있는 동기 중에서 선택할 수 있으며 (수 있을 경우) 또는 예외가 (can& # 39, t 값을 반환하는 경우). 이러한 사례는 거의 모두 promises/a+ 충족합니다 방식으로 exception handling) 는 동기식 코드를 강력하다. 그러나 버전을 포함한다) 에 해당하는 값을 찾는 핸들을 그냥 그랬다고 avamer 다소 복잡한 예외 처리 문제가 됩니다. 특히 전체 집중식으로 exception handling) 하고 있지만, 좋은 메시지를 통해 동기식 코드는 포기하는 것이 아니라 문제를 해결하고 계속하시겠습니까 러스롤링 실행 또는 기타 다른 부위에 같은 일부 또는 다른 예외 처리할 수 있는 프로그램. 코드 s 에서 콜 스택 있습니다. # 39 의 너회가 don& 비동기 호출, t, 예외 처리 인사이드라면 고급 사용자의 요청에 따라 공약을 Promises/A+ 사양명세 실질적으로 지원할 수 있는 의미있는 방식으로 처리할 수 있는 코드를 작성하는 것도 복잡한 예외 오류 및 활용 사례. Jquery 의 차이점 및 기타 구현을 위한 약속, 어떻게 jQuery 변환하십시오 Promises/A+ 호환일 http://schmidt. devlib. [Coming from jQuery] (https://github.com/kriskowal/q/wiki/Coming-from-jQuery) 에 크리스 코발 et al. wiki 의 Q 라이브러리 및 [공약 도착할 JavaScript] (http://www.html5rocks.com/en/tutorials/es6/promises/ # javascript 공약을 목차) 가 html5 에서 제이크 아치볼드 바위.
어떻게 반환되기를 진짜 약속하나요
이 함수는 from my 위 예제:
jquery 는 한 되돌려줍니다 이크스어 객체에는 [우회된 객체에는] (https://api.jquery.com/category/deferred-object/). 실제 사용 할 수 있습니다 - 복귀하십시오 약속하나요 변경하십시오 [방법을 wiki 의 Q] (https://github.com/kriskowal/q/wiki/Coming-from-jQuery # jquery 변환 약속 q):
또는 using [방법을 HTML5 에서 바위 문서] (http://www.html5rocks.com/en/tutorials/es6/promises/ # javascript 공약을 목차):
이 '프로미세이어솔베 ($ 지아이아스 (.))' 도 지정하십시오. [설명한 '약속' 모듈에서는 문서용으로] (https://github.com/then/promise # 프로마이어솔베발루) 와 함께 작업하므로 합니다 [ES6 프로미세이어솔베 () ''] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/resolve). 오늘 약속 es6 사용하려면 사용할 수 있는 [es6 약속하나요 module& 폴리필 () ',' s # 39] (https://github.com/jakearchibald/es6-promise # 자동 폴리필) 에서 제이크 아치볼드. 어디서 볼 수 없는 공약을 폴리필 http://schmidt. devlib. ES6 사용할 수 있습니다. [사용할 수 있습니까?: 약속] (http://caniuse.com/promises). 자세한 정보 참조.
미래의 jQuery
이후 버전의 jquery (시작으로 현재 안정 버전은 vmware. 3.x - 5월 2015년 은 1.x 와 2.x) 가 이 호환되어야 [promises/a+ 사양명세] (http://promises-aplus.github.io/promises-spec/) (덕분에 [벤햐민 그루에누스바움] (https://stackoverflow.com/users/1348195/benjamin-gruenbaum) 를 가리키는 아웃해야 정보를). # 39 는 이미 결정한 Promise/A+ 호환성에서는 we& ", 2 개의 변경 사항을, ve 의 우회된 구축상의 [.] ", ([jQuery 3.0 및 향후 웹 개발] (http://sdtimes.com/jquery-3-0-future-web-development/)). 자세한 정보 참조. [jQuery 3.0. 다음 세대] (http://blog.jquery.com/2014/10/29/jquery-3-0-the-next-generations/) 에 donatelli 메트빈 및 [jQuery 3.0. 더 적은 상호 운용성, Internet Explorer] (http://www.infoworld.com/article/2843689/javascript/jquery-3-0-internet-explorer.html) 에서 폴 크릴.
흥미로운 대화를
쓸 수 있습니다.
사용하거나 Promises/A+ API:
반드시 항상 flfile. 거부 핸들러도 인컨텍스트 호스트당:
또는 호스트당:
항상 flfile. 거부 이유를 알 수 있는 이 슬라이드에서는 오토메이티드 핸들러도 약속을 합니다.
40921505 https://stackoverflow.com/questions/40920179/should-i-refrain-from-handling-promise-rejection-asynchronously/40921505
물론 그냥 예제에서와 프로미시스탕 (경고) ',' 사용할 수 있기 때문에 그냥 '경고' 를 호출하십시오 you& # 39 와 같은 주장을 하고 있지만, 더 일반적인 콜백하는 누르십시보 구문은 다음과 같은 것을 쓸 수 있습니다
이 구문은 않을 경우, 모든 브라우저는 아직 수축됐는데 you& 코드에서 # 39 를 실행할 수 있는지, 어떤 특정 브라우저를 쓸 때 re - [크롬 확장명은] (예: https://developer.chrome.com/extensions/getstarted) 는 [Firefox Add-on] (https://developer.mozilla.org/en-US/Add-ons) 또는 사용하는 데스크톱 응용 프로그램 또는 전자, n w.j스 마카베이스 (http://otl. [이 오토메이티드] (https://stackoverflow.com/questions/35803346/i-want-to-use-nodejs-as-front-end-and-back-end-in-my-application-can-you-sugges/35888163 # 35888163) 를 참조). 화살표 기능 지원을 위한 http://schmidt. devlib.:
성과 = 화살표 기능 * http://caniuse.com/
test-arrow_functions http://kangax.github.io/compat-table/es6/
업데이트 (2017년)
작성할 수 있습니다.
내부에 있는 '키워드' 비동기 만든 함수를 때만 사용할 수 있습니다. 자세한 내용, 지켜보리니:
es2017 피쳐에는 비동기 함수 http://node.green/
39 곳에 너회가 don& 없다 ',' 바벨 '와' 기다리는 기본으로 지원하는 비동기 사용할 수 있습니다.
http://bluebirdjs.com/docs/api/promise.coroutine.html 자세한 정보
또 다른 몇 가지 질문에 대한 자세한 내용은 그렇다.
40721397 https://stackoverflow.com/questions/40720512/promise-call-separate-from-promise-resolution/40721397
[Q 약속하나요 지연입니다] (https://stackoverflow.com/questions/41287845/node-q-promise-delay/41287978 # 41287978) *
41284674 https://stackoverflow.com/questions/41284107/what-is-wrong-with-promise-resolving/41284674
40785901 https://stackoverflow.com/questions/40785769/return-value-in-function-from-a-promise-block/40785901
39765591 https://stackoverflow.com/questions/39764599/how-can-i-return-status-inside-the-promise/39765591
40921505 https://stackoverflow.com/questions/40920179/should-i-refrain-from-handling-promise-rejection-asynchronously/40921505
11845403 https://stackoverflow.com/questions/11845328/is-the-deferred-promise-concept-in-javascript-a-new-one-or-is-it-a-traditional-p/11845403
39660257 https://stackoverflow.com/questions/39659829/how-can-i-chain-these-functions-together-with-promises/39660257
40643489 https://stackoverflow.com/questions/40643386/promise-all-in-javascript-how-to-get-resolve-value-for-all-promises/40643489
42072290 https://stackoverflow.com/questions/42071337/function-will-return-null-from-javascript-post-get/42072290
40515981 https://stackoverflow.com/questions/40515775/use-cancel-inside-a-then-chain-created-by-promisifyall/40515981
42094874 https://stackoverflow.com/questions/42094764/why-is-it-possible-to-pass-in-a-non-function-parameter-to-promise-then-without/42094874
15246695 https://stackoverflow.com/questions/15245867/implement-promises-pattern/15246695
41567712 https://stackoverflow.com/questions/41567353/async-each-not-iterating-when-using-promises/41567712
5112734 https://stackoverflow.com/questions/5111695/jquery-jqxhr-cancel-chained-calls-trigger-error-chain/5112734
39661503 https://stackoverflow.com/questions/39661064/correct-way-of-handling-promisses-and-server-response/39661503
40730062 https://stackoverflow.com/questions/40729806/resolving-a-settimeout-inside-api-endpoint/40730062
40741587 https://stackoverflow.com/questions/40741374/async-wait-for-a-function/40741587
5150650 https://stackoverflow.com/questions/5150571/javascript-function-that-returns-ajax-call-data/5150650
40886720 https://stackoverflow.com/questions/40884153/try-catch-blocks-with-async-await/40886720
5159765 https://stackoverflow.com/questions/5159304/jquery-deferred-not-calling-the-resolve-done-callbacks-in-order/5159765
12660711 https://stackoverflow.com/questions/12660596/returning-data-from-ajax-results-in-strange-object/12660711
40525271 https://stackoverflow.com/questions/40523091/javascript-why-is-there-a-spec-for-sync-and-async-modules/40525271
데이터가 동기화 기능을 할 수 있는 유일한 방법은 반품하십시오 약간만이라도 호출하십시오 비동기 호출 대신 있으나, 그 위로 it& 기다리는 동안 # 39 의 응답 있지만브라우저에 동결시킬 것이라고 발표했다.
그 결과 처리하는 콜백 함수를 통과될 수 있습니다.
Call it 다음과 같습니다.
나도 몰라 경우 보세요들 해결 있지만 또 다른 방법은 내가 추천합니까 그것을하지 및 작동하잖아:)
그래서 그 주된 아이디어는 슬라이드에서는 추가하기만 비동기: 거짓값 때까지 기다린 후 모든 것을 할 수 있는 데이터 읽어들여집니다. 그런 다음, 모든 클래스의 정적 변수가 할당하십시오 마술로 작동됨:)
Jquery 예제 문서 참조. http://api.jquery.com/jQuery.ajax/ (약 2/3 이 페이지)
다음과 같은 코드를 찾는 수 있습니다.
동일한 페이지오로르 아래에있어.