2017-10-20 15 views
1

sagas 및 generator 함수를 사용하여 API를 호출해야합니다. 내가 발전기 기능은 인쇄를 참조 fetchCreate()를 인쇄 할 경우생성기 함수가 내 데이터를 표시하지 않습니다. 어떻게 액세스합니까?

export function* fetchCreate(data) { 
    try { 
    const options = jsonBodyOptions(data); 
    const tagResponse = yield call(
     fetchJson, 
     apiPath + '/fetch', 
     tagOptions 
    ); 
    return tagResponse; 
    } catch (err) { 
    console.log(err); 
    } 
} 

export function* callFetch(data) { 
    const response = fetchCreate(data); 
} 

: 여기 내 코드입니다.

동일한 파일의 다른 함수에서 해당 생성기 함수를 호출하려고합니다. 나는 주로 그 기능의 응답을 원하지만 기본적으로 그 생성기를 반환하고 싶다. 어떻게 응답을 불러올 수 있습니까?

답변

3

시도 fetchJson이 약속을 반환하는 경우 다음 선택적으로 yield call 작품 때문에 약속을 반환하는 함수로 대신 발전기의 약속을 반환하는 일반 함수로 fetchCreate를 변환 할 수 있습니다, yield call(...)

export function* callFetch(data) { 
    const response = yield call(fetchCreate, data); 
} 

를 사용하여.

export function fetchCreate(data) { 
    try { 
    const options = jsonBodyOptions(data); 
    return fetchJson(apiPath + '/fetch', tagOptions);  
    } catch (err) { 
    console.log(err); 
    } 
}