Javascript Promise.join()中的条件句
我很难获得正确的bluebird Promise流,假设所有查询都返回Promise,处理以下逻辑的最佳方法是什么:Javascript Promise.join()中的条件句,javascript,ecmascript-6,bluebird,es6-promise,Javascript,Ecmascript 6,Bluebird,Es6 Promise,我很难获得正确的bluebird Promise流,假设所有查询都返回Promise,处理以下逻辑的最佳方法是什么: Promise.join(query1(), query2(), (result1, result2) => { if (result1 === "Something") { query3() } else { // do nothing } }) 如何继续处理join方法的返回值?要继续流,需要从处理程序返回一些内容。在本例中,您需要返回由query
Promise.join(query1(), query2(), (result1, result2) => {
if (result1 === "Something") {
query3()
} else {
// do nothing
}
})
如何继续处理join方法的返回值?要继续流,需要从处理程序返回一些内容。在本例中,您需要返回由
query3
返回的值,如下所示
Promise.join(query1(), query2(), (result1, result2) => {
if (result1 === "Something") {
return query3();
}
});
Promise.join(query1(), query2(), (result1, result2) => {
if (result1 === "Something") {
return query3();
}
})
.then((value_resolved_from_query3) => {
// do something with value_resolved_from_query3
});
既然query3()
返回了一个承诺,您就可以将then处理程序附加到join
的结果,并通过query3
解析值,如下所示
Promise.join(query1(), query2(), (result1, result2) => {
if (result1 === "Something") {
return query3();
}
});
Promise.join(query1(), query2(), (result1, result2) => {
if (result1 === "Something") {
return query3();
}
})
.then((value_resolved_from_query3) => {
// do something with value_resolved_from_query3
});
要继续该流,需要从处理程序返回一些内容。在本例中,您需要返回由
query3
返回的值,如下所示
Promise.join(query1(), query2(), (result1, result2) => {
if (result1 === "Something") {
return query3();
}
});
Promise.join(query1(), query2(), (result1, result2) => {
if (result1 === "Something") {
return query3();
}
})
.then((value_resolved_from_query3) => {
// do something with value_resolved_from_query3
});
既然query3()
返回了一个承诺,您就可以将then处理程序附加到join
的结果,并通过query3
解析值,如下所示
Promise.join(query1(), query2(), (result1, result2) => {
if (result1 === "Something") {
return query3();
}
});
Promise.join(query1(), query2(), (result1, result2) => {
if (result1 === "Something") {
return query3();
}
})
.then((value_resolved_from_query3) => {
// do something with value_resolved_from_query3
});
如果它转到else分支怎么办?then()还会被调用吗?@Sawyer它仍会被调用,但由于我们没有显式返回任何内容,
undefined
将被传递到value\u resolved\u from\u query3
我如何才能将一个全面捕获的错误处理程序附加到此表达式?@Sawyer就像附加一个then
处理程序一样,附加一个.catch
处理程序。如果它转到else分支怎么办?then()还会被调用吗?@Sawyer它仍然会被调用,但由于我们没有显式返回任何内容,undefined
将被传递到value\u resolved\u from\u query3
我如何才能将一个catch all错误处理程序附加到此表达式?@Sawyer就像附加一个然后处理程序一样,附加一个.catch
处理程序。