подсказки с использованием диалогов возвращают неопределенный - PullRequest
0 голосов
/ 07 января 2020

В моем электронном приложении я использую пакет dialogs npm для подсказок. Я сделал базовую c функцию для быстрой замены:

function prompt(text){
    let returnval
    dialogs.prompt(text , val => {
        returnval = val
    })
    return returnval
}

И затем я протестировал эту функцию:

let pro = prompt("Your name");
console.log(pro); //returns undefined

Но в консоли она возвращает неопределенное значение даже после того, как приглашение завершено. Пожалуйста, помогите мне в этом. Ответы приветствуются.

1 Ответ

1 голос
/ 07 января 2020

Согласно описанию dialog.prompt не является блокирующей функцией, поэтому функция, которую вы передаете в нее

val => { returnval = val}

, работает только тогда, когда приглашению функции уже возвращено ее значение

Так что лучше вернуть обещание

function prompt(text){
    return new Promise((resolve, reject) => {
      dialogs.prompt(text , val => {resolve(val)})
    })
}

тогда вы можете использовать его вот так

prompt("Hi, there").then(answer => console.log(answer))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...