当我在function *(reply)中使用generateur函数时,它不会在块response.on中访问以执行产生put(push('/ dashboard'));
async function* signInUserWithEmailPassword({
payload
}) {
const password = payload;
console.log("sagasssssss==>>>>", payload)
console.log("sagas111111==>>>>", password)
try {
var request = new DeviceAuthQuery();
request.setPassword('1234');
let result;
var response = await client.authenticate(request, {}, (err, response) => {
console.log("Request Sent 1111");
});
response.on('data', function*(reply) {
// console.log("the result is==>",result)
console.log('Data: 22222' + reply.getAuthjwt());
result = reply.getAuthjwt();
console.log("the result in response scope ==>", result)
if (result != '') {
localStorage.setItem('user_id', result);
yield put(push('/dashboard'));
} else {
alert("rrrrrrrr")
}
});
} catch (error) {
yield put(showAuthMessage(error));
}
}
这是带有try and catch的完整代码
async function* signInUserWithEmailPassword({payload}) {
const password = payload;
console.log("sagasssssss==>>>>", payload)
console.log("sagas111111==>>>>", password)
try {
var request = new DeviceAuthQuery();
request.setPassword('1234');
let result;
var response = await client.authenticate(request, {}, (err, response) => {
console.log("Request Sent 1111");
});
response.on('data', function*(reply) {
// console.log("the result is==>",result)
console.log('Data: 22222' + reply.getAuthjwt());
result = reply.getAuthjwt();
console.log("the result in response scope ==>", result)
if (result != '') {
localStorage.setItem('user_id', result);
yield put(push('/dashboard'));
} else {
alert("rrrrrrrr")
}
});
} catch (error) {
yield put(showAuthMessage(error));
}
}