可以通过使用Promise和回调函数来处理用户输入的异步操作,而不是使用async/await。以下是一个示例:
function getUserInput() {
return new Promise((resolve) => {
const inputField = document.createElement('input');
const submitButton = document.createElement('button');
submitButton.textContent = 'Submit';
document.body.appendChild(inputField);
document.body.appendChild(submitButton);
submitButton.addEventListener('click', () => {
const userInput = inputField.value;
document.body.removeChild(inputField);
document.body.removeChild(submitButton);
resolve(userInput);
});
});
}
async function main() {
const userInput = await getUserInput();
console.log(`User input: ${userInput}`);
}
main();
在这个示例中,我们创建了一个getUserInput
函数,该函数返回一个Promise,该Promise将解析为用户输入。在main
函数中,我们使用await
等待getUserInput
函数的Promise,以便我们可以获得用户输入的值。当用户单击提交按钮时,我们使用resolve
方法解析了Promise并传递了用户输入的值。我们还在页面上创建了一个输入字段和一个提交按钮,以便用户可以输入值并将其提交。一旦我们获得了用户输入,我们可以将其记录在控制台中。
使用Promise和回调函数可以更轻松地处理异步操作,而不是使用async/await。但是,如果你真的需要使用async/await来处理用户输入,你可以使用像RxJS这样的流库。