// var twice = {
// 	apply:function(target, ctx, args) {
//         console.log("xxxxxxxxxxxxxxxxxxxxxxxxxxx");
//         console.log(target);
//         console.log("ctx",ctx,"args",args);
//         console.log(...arguments);
// 		return Reflect.apply(...arguments) * 2;
//     }
// };
class s{
    async apply(target, ctx, args){
        console.log("xxxxxxxxxxxxxxxxxxxxxxxxxxx");
        var rtn=await Reflect.apply(...arguments) * 2;
        console.log(arguments);
        return rtn
    }
}
class obj extends s{
    async sum(left, right){
        return left + right;
    }
}
// var objnew=new obj();
// var proxy = new Proxy(objnew.sum, objnew);
// var y=proxy(5, 6) // 22
// console.log(y.then(n=>console.log(n)));

function x(m,...items){
  console.log(m);
  console.log(...items);
  console.log(items);
}
x(2,3,4,5);

// class A{
// 	a(params) {
// 		console.log(params);
// 	}
// 	b(params) {
// 		console.log(params);
// 	}
// }
// console.log(A.toString());
// var reg1 = /([a-z])*\(.*\)/g;
// var m=A.toString().match(reg1);
// console.log(m);
// var WXPay = require('wx-pay');
// var wxpay = WXPay({
// 	appid: 'wx6f3ebe44defe336a',
// 	mch_id: '1232813602',
// 	partner_key: 'sinotone2014sinotone2014sinotone', //微信商户平台API密钥
// 	//pfx: fs.readFileSync('./wxpay_cert.p12'), //微信商户平台证书
//   //pfx: "sinotone2014sinotone2014sinotone"
// });
// // var out_trade_no='20160203'+Math.random().toString().substr(2, 10);
// // wxpay.createUnifiedOrder({
// // 	body: '充值兑换宝币',
// // 	out_trade_no: out_trade_no,
// // 	total_fee: 1,
// // 	spbill_create_ip: '192.168.2.210',
// // 	notify_url: 'http://www.gongsibao.com',
// // 	trade_type: 'NATIVE',
// // 	product_id: '1234567890'
// // }, function(err, result){
// // 	console.log(result);
// // 	//查询订单
// // 	//通过微信订单号查
// // 	wxpay.queryOrder({ out_trade_no:out_trade_no}, function(err, order){
// // 		console.log(order);
// // 	});
// //
// // });

// async function queryWxOrder(idkey){
// 	var p=new Promise((resv,rej)=>{
// 		 wxpay.queryOrder({ out_trade_no:idkey}, function(err, order){
// 			if(err){
// 				return rej(err);
// 			}else{
// 				return resv(order);
// 			}
// 		});
// 	});
// 	return p;
// }

// async function testQuery(){
// 	try{
// 		var result = await queryWxOrder("d942bc2ccd784034af60c2d92079c897");
// 		console.log(result);
// 	}catch(e){
// 		console.log(e);
// 		console.log("error.................");
// 	}

// }
// testQuery();








// 二、框架
// 三、实战





// async function getCacheByKey(k){
//   return k;
// }
// async function buildData(data){
//   console.log(data);
//   console.log("xxxxxxxxxxxxxxxx");
//   console.log(data.length);
//   var ds=[]
//   for(var i=0;i<data.length;i++){
//     console.log(i);
//     var source={name:""};
//     var count=await getCacheByKey(data[i].name);
//     source.name=data[i].name;
//     source.value=count;
//     ds.push(source);
//   }
//   return  ds;
// }
// async function out(){
//   var data=[
//     {"name":"jy"},
//     {"name":"tom"}
//   ];
//   var ds=await buildData(data);
//   console.log(ds);
// }
//
// out();

// async function ok1(){
//   var p=new Promise(function(res,rej){
//     setTimeout(()=>{
//       return res("ok1");
//     },2000);
//   });
//   return p;
// }
// async function ok2(){
//   return "ok2";
// }
// async function ok3(){
//   var k1=await ok1();
//   console.log(k1);
//   var k2=await ok2();
//   console.log(k2);
// }
// ok3();
// const uuidv4 = require('uuid/v4');
// var u=uuidv4()
// console.log(u.replace(/\-/g,""))
// async function testAsync1(){
//   return 5;
// }
//
// async function testAsync2(){
//   return 5;
// }
// async function testAsync3(){
//   var x=  await testAsync1();
//   var y=  await testAsync2();
//   return 5;
// }

// var x=testAsync().then(function(r){
//   console.log(r);
//   return 6;
// }).then(function(r){
//   console.log(r);
//   return 7;
// });
// x.then(function(r){
//   console.log(r);
// }).catch(function(err){
//
// });
// function getArgs(func){
// 		//匹配函数括号里的参数
// 		var args=func.toString().match(/[async|function]\s.*?\(([^)]*)\)/)[1];
// 		//分解参数成数组
// 		return args.split(",").map(function (arg){
// 			//去空格和内联注释
// 			return arg.replace(/\/\*.*\*\//,"").trim();
// 		}).filter(function(args) {
// 			//确保没有undefineds
// 			return args;
// 		});
// }
// console.log(convertoss["testMethod"].toString());
// var inObj={a:"hello",b:"ok"}
// var p=convertoss["testMethod"].apply(convertoss,["hello","kkkk"]);
// var args=getArgs(convertoss["testMethod"])
// console.log(args);
//var p=convertoss["testMethod"].call(convertoss,["hello"]);
//var p=Reflect.apply(,convertoss,"hello");
// p.then(function(r){
// 	console.log(r);
// });
// convertoss.convert2pdf(key).then(function(result){
// 	console.log(result);
// }).catch(function(e){
// 	console.log(e);
// });


// var routes=[
//     {
//       path:'/',components:{
//          default:componentFactory("products"),
//         // shows:demo
//       }
//     },
//     {
//       path:'/products/:id/detail',components:{
//          default:componentFactory("detail"),
//          //shows:demo
//       }
//     },
//     {
//       path:'/platform/apps',components:{
//          default:componentFactory("apps"),
//          //shows:demo
//       }
//     },
//     {
//       path:'/platform/users',components:{
//          default:componentFactory("users"),
//          //shows:demo
//       }
//     },
//     {
//       path:'/platform/op/oplogs',components:{
//          default:componentFactory("oplogs"),
//          //shows:demo
//       }
//     },
// ]


40d64e586551405c9bcafab87266bb04
f99d413b767f09b5dff0b3610366bb46


40d64e586551405c9bcafab87266bc04
f99d413b767f09b5dff0b3610366cc46
115.28.188.38:8888

