zoukankan      html  css  js  c++  java
  • js promise 风格编程

    使用q

    这种方式,极大的避免了回调地狱的情况产生,以后打算长久用这种方式。
    再写Nodejs,再也不担心这个问题了。
    以下实例,作为连接数据库的公共方法。

    
    /**
     * 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();
    
    
  • 相关阅读:
    【Hello CC.NET】巧用模板简化配置
    【Hello CC.NET】自动化发布时 Web.config 文件维护
    Hello Jexus
    【Hello CC.NET】CC.NET 实现自动化集成
    SSE和WebSocket的用法和比较
    利用canvas实现鼠标跟随效果
    使用es6制作简单数独游戏
    ppt学习(3)
    ppt学习(2)
    ppt学习(1)
  • 原文地址:https://www.cnblogs.com/juepei/p/4993170.html
Copyright © 2011-2022 走看看