Как проверить функцию внутри оператора if или try/catch? Например,test redux-сага внутри оператора if и с использованием реальных значений
export function* onFetchMessages(channel) {
yield put(requestMessages())
const channel_name = channel.payload
try {
const response = yield call(fetch,'/api/messages/'+channel_name)
if(response.ok){
const res = yield response.json();
const date = moment().format('lll');
yield put(receiveMessages(res,channel.payload,date))
}
} catch (error){
yield put(rejectMessages(error))
}
}
мне нужно ввести реальное имя канала, который на самом деле существует в базе данных для того, чтобы вернуть правильный ответ для выходов, которые следуют выполнить, в противном случае он выдаст сообщение об ошибке. Кроме того, я получу сообщение об ошибке, не могу прочитать свойство json undefined, поэтому результат после этого не может быть достигнут из-за этого сообщения об ошибке. Итак, моя первая проблема - «if (response.ok)», но даже если я ее удалю, дайте response.json() вернет ошибку и, кроме того, выход после этого не будет выполнен. Если кто-нибудь может показать мне, как проверить их, будет очень признателен.
спасибо, насмехается ответ с использованием свойства ok выглядит как план, но как бы вы это сделали? Если вы можете закодировать последний раздел, это было бы здорово (так как это часть, которая действительно имеет значение) – mtangula
передать объект, например saga.next ({ok : true}). – andresmijares25