이 응용 프로그램의 복잡성 때문에 Facebook API 호출을 래핑 할 필요가 있습니다.익명 함수 범위에서 데이터 추출
//In main file, read is always undefined
var read = fb_connect.readStream();
// In fb_wrapper.js
function readStream() {
var stream;
FB.api('/me/feed', {limit:10000}, function (response) {
stream = response.data;
});
return stream;
}
나는 인해 호출의 비동기 특성으로 readStream()
함수의 나머지 (값이없는 한) stream
를 반환 할 것이라는 점을 알고있다. 콜백 함수 범위 밖으로 데이터를 가져 오는 방법을 찾고 더 높은 범위로 백업하는 데 문제가 있습니다. FB API 호출이 잘 돌아 왔으며 (백 번 디버깅했습니다), 응답 데이터를 얻는 것은 지금까지 전투였습니다.
누구든지 의견이 있으면 크게 감사하겠습니다. 나는 운이 좋은 페이스 북 jQuery 플러그인을 미리 검색했다.
감사합니다. 정말, 난 더 많은 OO 응용 프로그램을 가질 수 있도록 이러한 API 호출에 대한 래퍼를 찾고 있어요. 다음과 같이 모델링됩니다 :'app.FBAPICall()'그리고이 호출로부터 값을 반환 할 수 있습니다. 그러나 비동기 처리기는 내 응용 프로그램 개체가 아니라 JS 스레드의 최상위 개체에서 호출됩니다. – Mark
네 말이 맞아. 비동기 호출에는 일반 절차 적 스타일과 완전히 다른 코딩의 "연속"스타일이 필요합니다. "연속"스타일에서는 안쪽에서 코드를 만듭니다. JavaScript가 단일 스레드이기 때문에 비동기 JavaScript 호출을 동기화 호출로 변환하는 것이 항상 쉬운 일은 아닙니다 (언급 한 바와 같이 JS 스레드가 콜백을 호출하므로 차단하면 안됩니다). –