[英]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.