나는 redux-saga 채널 문서를 검토하고있었습니다. 나는 코드로 실행 여기서 당신은 그것이 끝이 없을 것입니다 무한 루프입니다 볼 수 있듯이break 문없이 while (true) 루프를 끝내는 것이 어떻게 가능합니까?
export function* saga() {
const chan = yield call(countdown, value)
try {
while (true) {
let seconds = yield take(chan)
console.log(`countdown: ${seconds}`)
}
} finally {
if (yield cancelled()) {
chan.close()
console.log('countdown cancelled')
}
}
}
, 당신은 휴식을 전화 또는 던져 예외해야 하나. 그러나 위의 예에서는 아무 것도 해당하지 않습니다. 위의 코드 나 호출하는 함수 내에서 중단 또는 예외가 발생하지 않습니다. 위의 무한 루프가 어떻게 끝나서 finally 블록에 도달 할 수 있습니까?
는 볼 수 없습니다 :이 줄은 것 같다 http://yelouafi.github.io/redux-saga/docs/advanced/Channels.html
왜 그렇습니까? 예외는 발생하지 않습니까? (내 추측은 예외가 던져 질 것입니다.) – smarx
'yield'가 무엇인지,'function' 다음에'*'가 무엇인지 궁금하지 않으셨습니까? * "예외는 없습니다 ... 호출 함수에 던져지는 예외는 없습니다"* * * 호출 된 * 함수는 어떨까요? 'take()'는 무엇을합니까? – nnnnnn
발전기 작동 방법을 알고 있습니다. 소스 코드를 살펴 보았고 정상적으로 처리되는 예외를 찾지 못했습니다. – mahadazad