繁体   English   中英

在Firebase中对Google动作的承诺

[英]Promise in Firebase for google actions

如何运行从Firebase读取数据的异步任务? 我说“之前”,但我想说“之后”。

app.intent("Default Welcome Intent - yes",(conv)=>{

  var db=admin.database(firebaseApp);
  var ref= db.ref("xyz/1");
  var movie;
  var say="before";
  ref.once("value").then(function(snapshot){
    movie=snapshot.val();

    say="after";
  });
  console.log("say is"+say);
});

如果在Intent Handler中使用Promise,则还必须返回该Promise,以便应用程序调度程序知道正在进行异步操作。

您还有第二个问题,您试图在Promise分辨率( .then()部分)之外执行代码( console.log() ),但是期望从该分辨率内部获取一个值。 如果代码可以在then()内部的那一部分之前执行,则该部分。 如果希望在Promise解析后执行代码,则必须将其包含在then()部分内。

所以你的代码可能看起来像

app.intent("Default Welcome Intent - yes",(conv)=>{

  var db=admin.database(firebaseApp);
  var ref= db.ref("xyz/1");
  var movie;
  var say="before";
  return ref.once("value").then(function(snapshot){
    movie=snapshot.val();

    say="after";
    console.log("say is"+say);
  });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM