如何将此代码从回调转换为Promise?

时间:2019-07-17 05:28:11

标签: javascript asynchronous promise callback

我有一个回调代码,并且可以正常工作。但是我需要了解诺言如何运作。 有人可以帮助我将这段回调代码转变为一个承诺吗?

我尝试了很多互联网教学,但是很难理解我如何使用诺言。

const mysql = require('mysql')
const connConfig = require('./dbConfig')
const connection = mysql.createConnection(connConfig.config.default)

const start = (query, arrayReturned) => {
    searchMenu(query, createArrayMenu,(options)=>{
        arrayReturned(options)
    })
}

const createArrayMenu = (row)=>{
    const options = []
    for (let index = 0; index < row.length; index++) {
        options[index] = [row[index].id_main_option,row[index].ds_main_option]
    }
    return options
}

const searchMenu = (query, getResults, transformResults)=>{
    connection.connect()
    connection.query(query,(err, results)=>{
        if(err) throw err
        transformResults(getResults(results))
    })
    connection.end()
}

module.exports = (query, test)=>{start(query, test)}

我希望获得相同的输出,但它会转换为Promise。

0 个答案:

没有答案