Как получить элементы внутри массива, который находится внутри Promise.resolve ()? - PullRequest
0 голосов
/ 02 августа 2020

Я пытаюсь получить несколько значений из 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 () для дайте мне оба предмета, которые я хочу?

Спасибо.

...