如何解決外部異步函數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''''異步函數'。 –