--harmony

shell> node --v8-options | grep harmony
shell> node --harmony co.js
onerror
onclose
onopen
onmessage

shell> npm install co
shell> npm install co-fs
shell> npm install co-prompt

shell> npm install thunkify

const co = require('co');

co(function *(){
  // resolve multiple promises in parallel 
  var a = Promise.resolve(1);
  var b = Promise.resolve(2);
  var c = Promise.resolve(3);
  var res = yield [a, b, c];
  console.log(res);  // => [1, 2, 3] 
}).catch(onerror);

co(function* () {
  return yield Promise.resolve(true);
}).then(function (val) {
  console.log(val);
}, function (err) {
  console.error(err.stack);
});

co(function* () {
  var res = yield [
    Promise.resolve(1),
    Promise.resolve(2),
    Promise.resolve(3),
  ];
  console.log(res); // => [1, 2, 3] 
}).catch(onerror);

co(function* () {
  var res = yield {
    1: Promise.resolve(1),
    2: Promise.resolve(2),
  };
  console.log(res); // => { 1: 1, 2: 2 } 
}).catch(onerror);

function onerror(err) {
  console.error(err.stack);
}

thunkify

function original(arguments, done) {
  // ...
  done(null, 'ok')
}

function thunkified(arguments) {
  return function(done) {
    original(arguments, done)
  }
}
const thunkify = require('thunkify');
const fs = require('fs');

const readFile = thunkify(fs.readFile);
read('package.json', 'utf8')(function(err, str){
});
const co = require('co');
const readFile = require('thunkify')(require('fs').readFile);

const sleep = require('thunkify')(function (ms, cb) {
  setTimeout(cb, ms);
});

co(function*() {
  yield sleep(3000);
  var packageData = JSON.parse(yield readFile('package.json', 'utf8'));
  console.log(packageData);
});
const thunkify = require('thunkify');

var sleep = thunkify(function (ms, cb) {
  setTimeout(cb, ms);
});

console.log('sleep start...');
sleep(3000)(function () {
  console.log('3 seconds later...');
});

const co = require('co');

function wait() {
  return new Promise( function (resolve, reject) {
    setTimeout(resolve, 1000);
  });
}

co(function* () {
  console.log("hello");
  yield wait();
  console.log("I am walking!");
  yield wait();
  console.log("goodBye");
}).catch(function(err){
  throw err;
});

const arp = require('node-arp');

arp.getMAC('192.168.0.1', function(err, mac) {
  console.log(mac);
  arp.getMAC('192.168.0.2', function(err, mac) {
    console.log(mac);
  });    
});
const arp = require('node-arp');

function getMAC(ipAddress) {
  return function(callback) {
    arp.getMAC(ipAddress, callback);
  }
}

getMAC('192.168.0.1')(function(err, mac){
  console.log(mac);
});
const co = require('co');
const arp = require('node-arp');

function getMAC(ipAddress) {
  return function(callback) {
    arp.getMAC(ipAddress, callback);
  }
}

co(function* () {
  console.log( yield getMAC('192.168.42.1') );
}).catch(onerror);

function onerror(err) {
  console.error(err.stack);
}
const co = require('co');
const arp = require('node-arp');
const thunkify = require('thunkify');

const getMAC=thunkify(arp.getMAC);

co(function* () {
  console.log( yield getMAC('192.168.42.1') );
}).catch(onerror);

function onerror(err) {
  console.error(err.stack);
}

//  Created by Timmy on 2016/3/29.
//  Copyright (c) 2016年 Timmy. All rights reserved.
"use strict";

// 导入所需模块
const mysql = require('mysql');
const squel = require("squel");
const co = require('co');
const wrapper = require('co-mysql');

co(function*() {

  var pool = mysql.createPool({
    connectionLimit: 10,
    host: 'example.org',
    user: 'bob',
    password: 'secret'    
  });

  p = wrapper(pool);
  var rows = yield p.query('SELECT 1');
  console.log(rows);
  pool.end();

}).catch(onerror);

function onerror(err) {
  console.error(err.stack);
}
//  Created by Timmy on 2016/3/29.
//  Copyright (c) 2016年 Timmy. All rights reserved.
"use strict";

// 导入所需模块
const co = require('co');
const sql = require('co-mssql');
const squel = require("squel");

co(function*() {

  var connection = new sql.Connection({
    user: '...',
    password: '...',
    server: 'localhost',
    database: '...'
  });

  // Query
  yield connection.connect();
  var request = new sql.Request(connection);
  var recordset = yield request.query('select 1 as number');
  console.dir(recordset);

  // Stored Procedure      
  var request = new sql.Request(connection);
  request.input('input_parameter', sql.Int, 10);
  request.output('output_parameter', sql.Int);
  var recordsets = yield request.execute('procedure_name');
  console.dir(recordsets);

});
//  Created by Timmy on 2016/3/29.
//  Copyright (c) 2016年 Timmy. All rights reserved.
"use strict";

// 导入所需模块
let co = require("co");
let request = require("co-request");

:books: 參考網站:

powered by Gitbook最後更新: 2017-11-30 14:13:49

results matching ""

    No results matching ""