내가 뭔가 있으면
// resources.js
import DB from 'some/massive.json';
export const RESOURCES = (() => {
const {
dataA,
dataB
} = DB;
return [
dataA,
dataB
];
})
그리고 나는 그것을 가져옵니다
// someOtherFile.js
import { RESOURCES } from 'path/to/resources.js'
RESOURCES
수신되는 데이터를 제한하기 위해 매개 변수를 전달하여을 가져 오려면 어떻게 해야합니까? RESOURCES
크기가 MB 일 수 있으며 실행되는 각 테스트에 대해 모두 필요하지는 않으며 특정 테스트를위한 특정 리소스 만 필요합니다.
같은 것,
import DB from 'some/massive.json';
export const RESOURCES = (dataToExclude = null, () => {
const {
dataA,
dataB
} = DB;
const dataArray = [
dataA, dataB
].flatMap(data => {
// Process
return data;
})
// dataArray will look something like,
// [ { dataName: 'NameA', ...props }, { dataName: 'NameB', ...props } ]
if (dataToExclude) {
const indexToSplice = dataArray.findIndex(({ dataName }) => dataName === dataToExclude)
dataArray.splice(indexToSplice, 1)
}
return dataToExclude;
});
RESOURCES의 본문은 질문이 아닙니다. 매개 변수를 전달할 수 있는지 확인하는 것뿐입니다.
귀하 RESOURCES
는 이미 함수이므로 다른 함수로 래핑 할 필요가 없습니다. (무해하지만 괄호로 감쌀 이유도 없습니다.) 원하는 필터링 기준을 전달하십시오.
export const RESOURCES = (filteringCriteria) => {
const {
dataA,
dataB
} = DB;
// ...apply filtering here...
return [
dataA,
dataB
];
};
... 가져온 후 호출하십시오.
const data = RESOURCES({/*...filtering criteria...*/});
그러나 경우에 다른 기능에 포장 할, 그래, 당신은 그렇게하고 필터링 기준을 통해 내부 기능 가까이 할 수 있습니다 :
export const RESOURCES = (filteringCriteria) => {
return () => {
const {
dataA,
dataB
} = DB;
// ...apply filtering here...
return [
dataA,
dataB
];
};
};
그런 다음 한 번 호출하여 필터링 기준을 설정하고 그 결과를 호출하여 실제로 데이터를 가져옵니다.
const dataSupplier = RESOURCES({/*...filtering criteria...*/});
// ...
const data = dataSupplier();
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다