Я пытаюсь заставить работать пользовательское приглашение syn c в моем электронном приложении. Точнее, у меня есть объект с набором команд и шаблонных переменных.
Я хочу заменить все неизвестные переменные шаблона пользовательским вводом ... синхронно. Так что команды отправляются только после того, как все мои переменные были заменены.
Не могли бы вы мне помочь?
Вот как я называю syn c приглашение пользователя (bootstrap модальное с формой) на моей стороне (этот тест работает, и я получаю result
синхронно после того, как пользователь вставил что-то в приглашение):
async function test(gui) {
const result = await gui.syncPrompt('User question')
console.log('result:', result)
}
test(this.gui)
Моя проблема, я очень запутался со всеми заявления async / await, и я не знаю, как я мог бы включить это в мой обычный процесс замены? Что я получил до сих пор:
const obj = {
cmds: [
'port {port}',
'template1 {temp1} und template2 {temp2}',
'template2 {temp2} und template1 {temp1}'
]
}
const templatePrompt = async () => {
const map = {}
await obj.cmds.forEach(async (element, index, array) => {
const patt = /{.*?}/gmi
patt.lastIndex = 0
if (patt.test(element)) {
await obj.cmds[index].match(patt).map(async (value) => {
let userInput = map[value]
if (!userInput) {
// Create Prompt here.
// userInput = Math.random() * 10
userInput = await this.gui.syncPrompt('User question:')
}
map[value] = userInput
return true
})
await Object.keys(map).map(async (key) => {
obj.cmds[index] = obj.cmds[index].replace(key, map[key])
return true
})
}
})
}
await templatePrompt()
console.log(obj)
Я забыл упомянуть, что моя настоящая проблема в том, что ... выполняется функция templatePrompt (), и появляется мое первое приглашение. В то же время, если пользователь даже наберет какой-то ввод, процесс отверстия уже завершен без замены вариабельных шаблонов. :( Моя цель - сделать «паузу» в каждом приглашении.