Используя ES2017, вы должны иметь это как объявление функции
async function foo() {
var response = await $.ajax({url: '...'})
return response;
}
и выполнить его следующим образом.
(async function() {
try {
var result = await foo()
console.log(result)
} catch (e) {}
})()
Или синтаксис Promise
foo().then(response => {
console.log(response)
}).catch(error => {
console.log(error)
})
Благодаря @chooban я узнал, что сеанс соединения использует latin1 вместо utf8. Вот два найденных решения:
SET NAMES utf8
, чтобы изменить набор символов соединения. CharSet=utf8
в строке DSN. Я не смог запустить SET NAMES
через ODBC. Этот вопрос указал мне в правильном направлении.
По крайней мере, попробуйте. После того, как вы подключились, запустите «SHOW VARIABLES LIKE» character_set_% '»и распечатайте результаты. Если ничего другого, это полезная проверка, чтобы увидеть, были ли заданы параметры набора символов, которые вы указали.
Это сработало для меня. Вот полный пример:
con = dbConnect(drv = MySQL(), user = user, password = password,
dbname = dbname, host=host)
dbSendQuery(con, "SET NAMES utf8mb4;")
dbSendQuery(con, "SET CHARACTER SET utf8mb4;")
dbSendQuery(con, "SET character_set_connection=utf8mb4;")
dbGetQuery(con, "SELECT * FROM WHATEVER")