ES6 모듈에 관한 질문과 그 모듈 간의 함수를 콜백으로 올바르게 호출하는 방법이 있습니다. 데이터시다른 모듈을 콜백 함수로 호출 [ES6]
테이크 "page_API.js는"콜백 함수가 나는이 requestExecuteAsync 등을 처리하는 내 "xml_functions.js"지금
// Make a call to our server, Once we've recieved data we'll call our callback
import {requestExecuteAsync} from "../xml_functions";
export const getData =() => {
requestExecuteAsync('api/getData', "dataRecieved");
};
export const dataRecieved =() => {
alert('Recieved Data');
};
라고 받았다되고, 나는 dataRecieved를 호출하고 싶습니다 일단 서버가 응답하면
은 이전에 내가 전역 네임 스페이스에 살고있는 모든 기능과 함께, 많은 JS 파일 구성 작업 코드베이스, 그래서 함수는 그러나 이제 콜백 함수가 같은 창에 정의되어 있지 않습니다이
// once data has been retrieved from server
if (callbackparamsArr.length) {
window[callback](res, callbackparamsArr);
} else {
window[callback](res);
}
처럼 일 더 이상 dataRecieved의 범위를 가지고 있지 않습니다.
내가 requestExecuteAsync에 정의 된 다른 문자열이 주어지고 단지 "dataRecieved"수입에
[callback](res)
하지만 인해를 호출 xml_functions 다음
import { dataRecieved } from "../MyPage/MyPage_API.js";
및 내부 dataRecieved 기능을 포함하여 시도했습니다 (예 : "dataRecieved"대신 "_Data_Recieved_"라고 할 것입니다. 무엇을해야할지 모르겠습니다.
도움이 될만한 점이 있으십니까?
감사합니다.
문자열 대신 함수 자체를 전달하지 않는 이유는 무엇입니까? 콜백 대신 약속을 사용하지 않는 이유는 무엇입니까? –
"* 이전에 내가 작업 한 코드베이스는 많은 JS 파일들로 구성되었고 모든 기능들은 글로벌 네임 스페이스 *에 존재했습니다. ES6 모듈이 더 나은 접근 방식을 강요합니다 .-) – Bergi
@Bergi Aha you tell me that! 새로운 프로젝트에서 기존의 XML 구문 분석 + 네트워크 코드를 모듈로 다시 작성할 기회를 얻었습니다. 훨씬 좋았습니다! –