这是我到目前为止的代码:
这是承诺1:
const promise1 = () => new Promise((resolve) => {
console.log("1");
resolve(["hi", "world"]);
})
这是承诺2:
const promise2 = (data) => {
console.log("2");
ref.ref("server/events").once("value").then(function (snapshot) {
console.log(inside firebase ref');
return Promise.resolve("test");
}
})
}
这是承诺3:
const promise3 = (value) => {
console.log(" 3 ");
console.log(value)
}
并致电其中3人:
promise1()
.then((value) => promise2(value))
.then((value) => promise3(value));
输出是:
1
2
3
未定义
在firebase ref
中
答案 0 :(得分:1)
你的问题不是很清楚,但我认为你不满意promise3注销一个undefined而不是你希望从promise2返回的值。并且firebase回调似乎发生了故障。
问题是,你永远不会从promise2函数返回一个promise,所以:
ref.ref("server/events").once("value").then(function (snapshot) {...
需要
return ref.ref("server/events").once("value").then(function (snapshot) {...
专业提示,您可以在"免费点"中调用该承诺链。时尚:
promise1()
.then(promise2)
.then(promise3);