这种方式,极大的避免了回调地狱的状况产生,之后打算长久用这种方式。
再写Nodejs,不再担忧这个问题了。
如下实例,做为链接数据库的公共方法。javascript
/** * Created by ThinkCat on 15/11/24. */ var mysql = require('./db/db'); var Q = require('q'); //var getConnection = function(){ // var deferred = Q.defer(); // mysql.MySqlDb.getConnection(function(err,connection){ // console.log('connection:',connection); // deferred.resolve(connection); // }); // return deferred.promise; //} // //var doQuery = function(connection){ // var deferred = Q.defer(); // connection.query('select * from user',function(err,rows){ // console.log('rows:',rows); // deferred.resolve(rows); // }); // return deferred.promise; //} var getConnection = function(){ var deferred = Q.defer(); deferred.resolve('this is a connection'); return deferred.promise; }; var doQuery = function(connection){ var deferred = Q.defer(); deferred.resolve(connection + ',select * from user'); return deferred.promise; }; function main(){ getConnection() .then(doQuery) .done( function(data){ console.log('final:',data); }, function(err){ console.log('error:',err); } ); } main();