await
требует Promise
. generateDataKey()
возвращает AWS.Request
, а не Promise
. AWS.Request
являются EventEmitters
(более или менее), но имеют метод promise
, который вы можете использовать.
import AWS, {
KMS
} from "aws-sdk";
(async function() {
const kms = new AWS.KMS();
const keyReq = kms.generateDataKey()
const key = await keyReq.promise();
// Or just:
// const key = await kms.generateDataKey().promise()
}());
Вы можете добавить DocumentListener в свое текстовое поле и проверить, превышает ли длина текстового поля пороговое значение X.
Примечание: точно так же, как в MadProgrammer сказано, что вы хотите добавить таймер, чтобы избежать слишком большого количества обращений к базе данных.
Спасибо MadProgrammer за указание на это.
JTextField textField = new JTextField(20);
DocumentListener documentListener = new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
onTextChange();
}
@Override
public void removeUpdate(DocumentEvent e) {
onTextChange();
}
@Override
public void changedUpdate(DocumentEvent e) {
onTextChange();
}
public void onTextChange() {
String text = textField.getText();
if(text.length() > 0){
// display the data
}
}
};
textField .getDocument().addDocumentListener(documentListener);