Promise.join() 内的条件
conditionals inside Promise.join()
我很难让 bluebird Promise 流程正确,假设所有查询 return Promise,处理以下逻辑的最佳方法是什么:
Promise.join(query1(), query2(), (result1, result2) => {
if (result1 === "Something") {
query3()
} else {
// do nothing
}
})
如何继续处理 join 方法的 return 值?
要继续流程,您需要 return 处理程序提供一些信息。在您的情况下,您需要 return 由 query3
编辑的值 return,像这样
Promise.join(query1(), query2(), (result1, result2) => {
if (result1 === "Something") {
return query3();
}
});
现在 query3()
return 是一个 Promise,您可以将 then 处理程序附加到 join
的结果并获得由 query3
解析的值,就像这样
Promise.join(query1(), query2(), (result1, result2) => {
if (result1 === "Something") {
return query3();
}
})
.then((value_resolved_from_query3) => {
// do something with value_resolved_from_query3
});
我很难让 bluebird Promise 流程正确,假设所有查询 return Promise,处理以下逻辑的最佳方法是什么:
Promise.join(query1(), query2(), (result1, result2) => {
if (result1 === "Something") {
query3()
} else {
// do nothing
}
})
如何继续处理 join 方法的 return 值?
要继续流程,您需要 return 处理程序提供一些信息。在您的情况下,您需要 return 由 query3
编辑的值 return,像这样
Promise.join(query1(), query2(), (result1, result2) => {
if (result1 === "Something") {
return query3();
}
});
现在 query3()
return 是一个 Promise,您可以将 then 处理程序附加到 join
的结果并获得由 query3
解析的值,就像这样
Promise.join(query1(), query2(), (result1, result2) => {
if (result1 === "Something") {
return query3();
}
})
.then((value_resolved_from_query3) => {
// do something with value_resolved_from_query3
});