在 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