Node.js中, 使用Q.ninvoke封装对象方法为promise

var Q = require('q');

function _o(msg){console.log(msg);}

function main(){
  var obj1 = {
    var1: 1,
    func1: function(callback){_o('obj1.func1, var1 = ' + this.var1); callback(null, this.var1);}
  };

  var obj2 = {
    var2: 2,
    func2: function(callback){_o('obj2.func2, var2 = ' + this.var2); callback(null, this.var2);},
    func3: function(param, callback){_o('obj2.func3, param = ' + param); callback(param, null);}
  };

  Q.ninvoke(obj1, 'func1').
    then((rslt)=>{_o('success, rslt = ' + rslt); return Q.ninvoke(obj2, 'func2');          }, (err)=>{_o('fail, err = ' + err)}).
    then((rslt)=>{_o('success, rslt = ' + rslt); return Q.ninvoke(obj2, 'func3', 'param1');}, (err)=>{_o('fail, err = ' + err)}).
    then((rslt)=>{_o('success, rslt = ' + rslt);                                           }, (err)=>{_o('fail, err = ' + err)});
}

main();

//output: 
//obj1.func1, var1 = 1
//success, rslt = 1
//obj2.func2, var2 = 2
//success, rslt = 2
//obj2.func3, param = param1
//fail, err = param1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值