Skip to content

Instantly share code, notes, and snippets.

View cuipengfei's full-sized avatar
:octocat:

崔鹏飞 Cui Pengfei cuipengfei

:octocat:
View GitHub Profile
@cuipengfei
cuipengfei / workshop.md
Last active December 31, 2015 14:39
how to set up scala environment for workshop

how to set up scala environment for workshop

1.install scala

2.install sbt

(those two step could take very long)

3.create a build.sbt file in a folder where you want to store your project

@cuipengfei
cuipengfei / throwanerror.js
Created December 16, 2013 14:28
promise it wont hurt throw an error
var q = require('q');
function parsePromised() {
var defer = q.defer();
try {
var obj = JSON.parse(process.argv[2])
defer.resolve(obj)
} catch (e) {
defer.reject(e)
@cuipengfei
cuipengfei / drmanhattan.js
Created December 16, 2013 13:27
promise it wont hurt values and promises
var q = require('q');
var defer = q.defer();
function attachTitle(name) {
return "DR. " + name
}
defer.promise
.then(attachTitle)
.then(console.log)
@cuipengfei
cuipengfei / alwaysAsync.js
Created December 16, 2013 13:14
promise it wont hurt always async
var q = require('q');
var defer = q.defer();
defer.promise.then(console.log)
defer.resolve("SECOND")
console.log("FIRST")
//despite the promise being resolved synchronously,
//the provided function is not executed until the next turn of the event loop.
@cuipengfei
cuipengfei / resolveOrReject.js
Created December 16, 2013 13:07
promise it wont hurt resolve or reject
var q = require('q');
var defer = q.defer();
defer.promise.then(console.log, console.log)
defer.resolve("I FIRED")
defer.reject("I DID NOT FIRE")
@cuipengfei
cuipengfei / reject.js
Created December 16, 2013 05:57
promise it wont hurt reject a promise
var q = require('q');
var defer = q.defer();
defer.promise.then(null, function(err) {
console.log(err)
})
setTimeout(function() {
defer.reject("REJECTED!")
}, 300)
@cuipengfei
cuipengfei / fulfil a promise.js
Created December 16, 2013 05:48
promise it wont hurt fulfil a promise
var q = require('q');
var defer = q.defer();
defer.promise.then(console.log)
setTimeout(function() {
defer.resolve("RESOLVED!")
}, 300)
@cuipengfei
cuipengfei / curryN.js
Created December 15, 2013 15:57
functional js curry
function curryN(fn, n) {
function wrapper(args) {
return function (oneArg) {
var argsConcat = args.concat(oneArg)
if (argsConcat.length == ( n || fn.length)) {
return fn.apply(this, argsConcat)
}
return wrapper(argsConcat)
}
}
@cuipengfei
cuipengfei / muchbettersolution.js
Created December 15, 2013 13:20
functional js recursion
function getDependencies(mod, result) {
result = result || []
var dependencies = mod.dependencies || []
Object.keys(dependencies).forEach(function(dep) {
var key = dep + '@' + mod.dependencies[dep].version
if (result.indexOf(key) === -1) result.push(key)
getDependencies(mod.dependencies[dep], result)
})
return result.sort()
}
@cuipengfei
cuipengfei / asyncLoops.js
Created December 15, 2013 10:35
functional js async loops
function loadUsers(userIds, load, done) {
var users = []
var count = 0
userIds.forEach(function (id) {
load(id, function (user) {
users[userIds.indexOf(user.id)] = user
count++
//can not use users.length here
if (count == userIds.length) {