Я пытаюсь получить несколько значений из Promise.resolve (), но получаю только одно из двух.
Я пытаюсь вставить строку в таблицу базы данных, используя ajax . Затем, после успешного выполнения ajax, я хочу обновить таблицу HTML (но это не имеет особого значения). Проблема в том, как я сказал ранее, я получаю только одно из двух значений от Promise.resolve (). Я использовал массив как «значение» с двумя элементами внутри: вставленная строка и идентификатор вставленной строки.
Я использую express и node.js внутри Electron. js . Я новичок во всех этих фреймворках.
ШАГ 1 запрос на публикацию:
$.ajax({
method: "POST",
cache: false,
url: "http://localhost:3000/add-row",
data: {
username: username
},
success: function(response) {
addRow_to_html_table(response)
Вставка ШАГА 2 (эта часть работает):
return new Promise( function (resolve, reject) {
db_conn.serialize( function () {
db_conn.run("INSERT INTO table (username) VALUES (?);", [data.username], function (err,result) {
// passing an array here
resolve([result, this.lastID])
})
})
db_conn.close()
})
ШАГ 3 дает обратно клиенту:
app.post("/add-row", function (req, res) {
user_info.addRow(req.body).then( function(response) {
// rows is undefined
// row_id gives a valid response
res.json({
rows: response[0],
row_id: response[1]
})
}).catch(function () {
})
})
Если я console.log()
ответ, он дает [ undefined, 45 ] // the inserted row, and row id
Как мне получить Promise.resolve () для дайте мне оба предмета, которые я хочу?
Спасибо.