Skip to content

Commit e98ed78

Browse files
committed
add async
1 parent 12828cf commit e98ed78

34 files changed

Lines changed: 4369 additions & 0 deletions

doc/day3_node.md

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,138 @@
22

33
http://nodejs.org/
44

5+
6+
57
## 熟悉Common JS写法
68

9+
### 最基本的写法
10+
```
11+
function pp(name){
12+
console.log('hello world 1:' + name);
13+
}
14+
15+
module.exports = {
16+
hi:pp
17+
};
18+
19+
```
20+
21+
```
22+
function pp(name){
23+
console.log('hello world 2:' + name);
24+
}
25+
26+
module.exports = pp
27+
```
28+
29+
30+
```
31+
var obj = {
32+
pp: function(name){
33+
console.log('hello world 3:' + name);
34+
}
35+
}
36+
37+
module.exports = obj
38+
```
39+
40+
测试代码
41+
42+
```
43+
/* test 1 */
44+
var Hello = require('./helloworld')
45+
Hello.hi('kezhizhi');
46+
47+
/* test 2 */
48+
require('./helloworld_2')('kezhizhi')
49+
50+
/* test 3 */
51+
var Hello = require('./helloworld_3')
52+
Hello.pp('kezhizhi');
53+
```
54+
55+
56+
## 系统库
57+
58+
在mac下建议使用Dash查看nodejs文档
59+
60+
61+
## 异步调用
62+
63+
64+
### 异步示例
65+
```
66+
var fs = require('fs')
67+
68+
// 同步
69+
var filenames = fs.readdirSync(".");
70+
for (i = 0; i < filenames.length; i++) {
71+
console.log(filenames[i]);
72+
}
73+
74+
console.log('Current uid: ' + process.getuid()+ "\n---------------------------");
75+
76+
//异步
77+
78+
fs.readdir(".", function (err, filenames) {
79+
var i;
80+
for (i = 0; i < filenames.length; i++) {
81+
console.log(filenames[i]);
82+
}
83+
});
84+
85+
console.log('Current uid: ' + process.getuid() + "\n");
86+
```
87+
88+
89+
[更多](http://blog.csdn.net/yczz/article/details/7015463)
90+
91+
### 异步编程模式
92+
see [q](https://github.com/kriskowal/q)
93+
94+
`node_asycn/q/index.js`
95+
96+
code
97+
98+
```
99+
var Q = require('q')
100+
var fs = require('fs')
101+
102+
require('colors');
103+
104+
var fsReadFile_deferd = function(file,encoding){
105+
var deferred = Q.defer();
106+
fs.readFile(file,encoding,function(error,result){
107+
if(error){
108+
deferred.reject(error.toString().red);
109+
}
110+
deferred.resolve(result);
111+
});
112+
113+
return deferred.promise;
114+
};
115+
116+
var file = '../test.js'
117+
fsReadFile_deferd(file).then(function(result){
118+
console.log("invoke in deferd".red);
119+
console.log(result.toString().green);
120+
},function(error){
121+
console.log("invoke in deferd".red);
122+
console.log(error.toString().red);
123+
});
124+
```
125+
126+
127+
测试
128+
129+
```
130+
node index.js
131+
```
132+
7133

8134
## 常用库
9135

136+
- fs
137+
- utils
10138

11139
## 总结
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
var Q = require('q')
2+
var fs = require('fs')
3+
4+
require('colors');
5+
6+
var fsReadFile_deferd = function(file,encoding){
7+
var deferred = Q.defer();
8+
fs.readFile(file,encoding,function(error,result){
9+
if(error){
10+
deferred.reject(error.toString().red);
11+
}
12+
deferred.resolve(result);
13+
});
14+
15+
return deferred.promise;
16+
};
17+
18+
var file = '../test.js'
19+
fsReadFile_deferd(file).then(function(result){
20+
console.log("invoke in deferd".red);
21+
console.log(result.toString().green);
22+
},function(error){
23+
console.log("invoke in deferd".red);
24+
console.log(error.toString().red);
25+
});

doc/demo/day1/node_asycn/q/node_modules/colors/.travis.yml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

doc/demo/day1/node_asycn/q/node_modules/colors/MIT-LICENSE.txt

Lines changed: 23 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

doc/demo/day1/node_asycn/q/node_modules/colors/ReadMe.md

Lines changed: 167 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)