Как разрешить внешнюю асинхронную функцию 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
вернет обещание и внутренние onPress
функции будут вызывать resolve
во внешнем обещании.
await
неправильно ... Я ожидал увидетьreturn await dialog.prompt(...
- хотя, не зная, какой диалог или код dialog.prompt вообще выглядит, трудно сказать - person Jaromanda X   schedule 24.12.2015await
-способныйasync function
. - person Geoffrey Goh   schedule 24.12.2015onPress
. - person Geoffrey Goh   schedule 24.12.2015