在用户回答对话框提示后,如何使用指示用户次要状态(真/假)的布尔值来解析外部异步函数 askIfUserIsAMinor?例如:
async function askIfUserIsAMinor() {
let dialogButtons = [
{
text: "Yes",
onPress: () => {
// I want to return 'false' on the outer async function
}
},
{
text: "No",
onPress: () => {
// I want to return 'true' on the outer async function
}
}
];
dialog.prompt("Are you above the age of 18?", dialogButtons);
}
let userIsAMinor = await askIfUserIsAMinor();
if (userIsAMinor) {
// let user proceed
} else {
// show something else
}
是的,有很多其他方法可以在没有 async/await 的情况下解决这个问题,但是我的用例比这要复杂得多,这只是一个简化的场景。在 ES6 中,这可以通过askIfUserIsAMinor
返回一个 Promise 并让内部onPress
函数调用resolve
外部 Promise 来解决。