首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >redux-sagas在firebase云功能完成时不调度操作

redux-sagas在firebase云功能完成时不调度操作
EN

Stack Overflow用户
提问于 2020-07-11 08:53:18
回答 1查看 73关注 0票数 0

此函数调用firebase云函数

代码语言:javascript
复制
   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

代码语言:javascript
复制
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“变量永远不会随着云函数的结果得到更新

我怎样才能达到这个目的?

EN

回答 1

Stack Overflow用户

发布于 2020-07-11 11:01:07

看起来您的addUser函数执行了一个异步操作。对于您当前的代码,Cloud Functions会在执行完最后一个}时终止您的代码的容器,这是在异步函数完成之前。要让容器等待,您需要返回一个promise。

代码语言:javascript
复制
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文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62844064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档