首页 > 应用开发 > IT综合 > Bluebird-NodeJs的Promise
|
1
2
3
4
5
6
7
|
fs.readFile('directory/file-to-read', function(err, file){
if (error){
//handle error
} else {
//do something with the file
}
});
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
fs.readFile('directory/file-to-read', function(err, file){
if (error){
//handle error
} else {
//do something with the file
fs.mkdir('directory/new-directory', function(err, file){
if (error) {
//handle error
} else {
//new directory has been made
fs.writeFile('directory/new-directory/message.txt', function(err, file){
if(error) {
// handle error
} else {
// File successfully created
}
});
}
});
}
});
|
|
1
2
3
4
5
6
7
|
fs.readFileAsync('directory/file-to-read')
.then(function(fileData){
return fs.mkdirAsync('directory/new-directory');
})
.then(function(){
return fs.writeFileAsync('directory/new-directory/message.txt');
})
|
|
1
2
3
4
5
6
7
8
9
10
11
12
|
function readFileandMakeDirectory(){
return fs.readFileAsync('directory/file-to-read')
.then(function(fileData){
return fs.mkdirAsync('directory/new-directory');
});
}
//The following will execute once the file has been read and a new directory has been made
readFileandMakeDirectory()
.then(function(){
return fs.writeFileAsync('directory/new-directory/message.txt');
})
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
//routes/index.js
var router = require('express').Router();
var getFileExcerpt = require('../utils/getFileExcerpt')
router.get('/', function(){
getFileExcerpt.then(function(fileExcerpt){
res.json({message: fileExcerpt});
});
});
module.exports = router;
//utils/getFileExcerpt.js
var Promise = require('bluebird');
var fs = Promise.promisifyAll(require('fs'));
module.exports = function getPost(){
return fs.readFileAsync(file, 'utf8').then(function(content){
return {
excerpt: content.substr(0, 100)
}
});
}
|
|
1
2
3
4
5
6
7
8
9
10
|
fs.readFileAsync('directory/file-to-read')
.then(function(fileData){
return fs.mkdirAsync('directory/new-directory');
})
.then(function(){
return fs.writeFileAsync('directory/new-directory/message.txt');
})
.catch(function(error){
//do something with the error and handle it
});
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
//myPromise.js
var Promise = require('bluebird');
module.exports = function(){
return new Promise(function(resolve, reject){
tradiationCallbackBasedThing(function(error, data){
if (err) {
reject(err);
} else {
resolve(data)
}
});
});
}
|
|
1
2
3
4
5
6
7
8
|
it('should do something with some async code', function(done){
readPost(__dirname + '/../fixtures/test-post.txt')
.then(function(data){
data.should.equal('some content inside the post');
done();
})
.catch(done);
});
|
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/662864/viewspace-2113077/ ,如需转载,请注明出处,否则将追究法律责任。