Utilisez promesse pour traiter la valeur de retour MySQL dans node.js

J'ai un python de fond et est actuellement vers node.js. J'ai un problème de réglage de node.js en raison de sa nature asynchrone.

Par exemple, je suis en train de retourner une valeur à partir d'une base MySQL fonction.

function getLastRecord(name)
{
    var connection = getMySQL_connection();

    var query_str =
    "SELECT name, " +
    "FROM records " +   
    "WHERE (name = ?) " +
    "LIMIT 1 ";

    var query_var = [name];

    var query = connection.query(query_str, query_var, function (err, rows, fields) {
        //if (err) throw err;
        if (err) {
            //throw err;
            console.log(err);
            logger.info(err);
        }
        else {
            //console.log(rows);
            return rows;
        }
    }); //var query = connection.query(query_str, function (err, rows, fields) {
}

var rows = getLastRecord('name_record');

console.log(rows);

Après quelques lectures, je me rends compte que le code ci-dessus ne peuvent pas travailler et j'ai besoin de retourner une promesse en raison de node.js's de la nature asynchrone. Je ne peux pas écrire node.js type de code python. Comment puis-je convertir des getLastRecord() de retour d'une promesse et comment dois-je traiter la valeur retournée?

En fait, ce que je veux faire, c'est quelque chose comme cela;

if (getLastRecord() > 20)
{
    console.log("action");
}

Comment cela peut-il être fait dans node.js dans un lisible?

Je voudrais voir comment les promesses peuvent être mises en œuvre dans ce cas à l'aide de bluebird.

source d'informationauteur user781486