callback異步改Promise

在 redis 模塊中,遇到一個苦難的問題,它的全部get方法都是經過 callback 來取值的。可是實際的狀況下,又遇到一個,我設置值前,須要先經過 exists 檢查一下 key 是否存在。node

能夠經過返回一個 Promise 對象來解決這個問題。git

以下:github

function testG(req, res) {
    co(function *() {
        let token = req.query.token || common.ranStr();

        let uniqueToken = yield generateToken(token);

        console.log(uniqueToken);

        res.send({uniqueToken});
    });
}

function generateToken(token) {
    return new Promise(function (resolve, reject) {
        redisHelper.exists(token, function (err, exists) {
            if (err) {
                reject(err);
            } else {
                resolve(exists);
            }
        });
    });
}

 

 ----------------------------------------redis

 

Another Example: https://github.com/alsotang/node-lessons/tree/master/lesson17less

相關文章
相關標籤/搜索