ユーザーがダイアログ プロンプトに応答した後、外部の非同期関数 askIfUserIsAMinor をユーザーのマイナー ステータス (true/false) を示すブール値で解決するにはどうすればよいですか? 例えば:
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
}
はい、非同期/待機なしでこの問題を解決する方法は他にもたくさんありますが、私の使用例はこれよりもはるかに複雑です。これは単純化されたシナリオにすぎません。askIfUserIsAMinorES6 では、promise を返し、内側のonPress関数が外側の promise を呼び出すことで解決できますresolve。