此函数调用firebase云函数
function createUser (data3){
var addUser = firebase.functions().httpsCallable('crearPaquete');
addUser(data3).then(function(result) {
// Read result of the Cloud Function.
return result //return uid inserted
}).catch(function(error) {
// Getting the Error details.
var code = error.code;
var message = error.message;
var details = error.details;
// ...
});
}然后在redux-saga函数中调用函数createUser
export function* createPackageStart({payload}){
try {
yield user= **createUser(payload)**
if(user.data){
yield put(createPackageSuccess()). **///this never is dispatch**
}
} catch(error){
yield put(createPackageFailure(error))
}
}我需要云函数的结果来分派成功的操作,但是"user“变量永远不会随着云函数的结果得到更新
我怎样才能达到这个目的?
发布于 2020-07-11 11:01:07
看起来您的addUser函数执行了一个异步操作。对于您当前的代码,Cloud Functions会在执行完最后一个}时终止您的代码的容器,这是在异步函数完成之前。要让容器等待,您需要返回一个promise。
function createUser(data3) {
var addUser = firebase.functions().httpsCallable('crearPaquete');
return addUser(data3).then(function(result) {
// Read result of the Cloud Function.
return result //return uid inserted
}).catch(function(error) {
// Getting the Error details.
var code = error.code;
var message = error.message;
var details = error.details;
// ...
});
}有关这方面的更多信息,请参阅sending back the result上的Firebase文档
https://stackoverflow.com/questions/62844064
复制相似问题