如何解决外部异步函数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
}
是的,还有很多其他的方法来解决这个问题,而异步/ AWAIT,但我的使用情况比这要复杂得多,这只是一个简单的场景。在ES6中,这可以通过使askIfUserIsAMinor
返回一个承诺并使内部onPress
函数在外部承诺上调用resolve
来解决。
使用了'await'错误......我会一直期望看到'回报伺机dialog.prompt(...' - 虽然,不知道wh在对话框或dialog.prompt代码甚至看起来像,很难说 –
我已经扩大了评论 –
可以说对话框就像一个库方法,显示提示,并在按下时调用每个按钮的附加功能。我们不能修改dialog.prompt到一个'await''''异步函数'。 –