案例是使用Node.js內置的fs模塊[就是文件系統模塊,負責讀寫文件。]來模擬異步操做vue
const fs = require('fs'); function getFilePath(fpath) { let p = new Promise(function (resolve, reject) { fs.readFile(fpath, 'utf-8', (err, dataStr) => { if (err) return reject(err) resolve(dataStr) }) }); return p } let p = getFilePath('./src/main.js'); p.then( function (data) { console.log('-----------------' +data + '---------------') }, function (err) { console.log(err.message) })
const fs = require('fs'); function getFilePath(fpath) { return new Promise( function (resolve, reject) { fs.readFile(fpath, 'utf-8', (err, dataStr) => { if (err) return reject(err) resolve(dataStr) }) } ) } getFilePath('./src/main.js') .then( function (data) { console.log('-----------------' + data + '---------------') }, function (err) { console.log(err.message) } )
const fs = require('fs'); function getFilePath(fpath) { return new Promise( function (resolve, reject) { fs.readFile(fpath, 'utf-8', (err, dataStr) => { if (err) return reject(err) resolve(dataStr) }) } ) } getFilePath('./1.txt') .then(function (data) { console.log('-----------------' + data + '---------------') getFilePath('./2.txt') .then(function (data) { console.log('-----------------' + data + '---------------') getFilePath('./3.txt') .then(function (data) { console.log('-----------------' + data + '---------------') }) }) })
const fs = require('fs'); function getFilePath(fpath) { return new Promise( function (resolve, reject) { fs.readFile(fpath, 'utf-8', (err, dataStr) => { if (err) return reject(err) resolve(dataStr) }) } ) } getFilePath('./1.txt') .then( function (data) { console.log('-----------------' + data + '---------------') return getFilePath('./2.txt') }) .then( function (data) { console.log('-----------------' + data + '---------------') return getFilePath('./3.txt') }) .then( function (data) { console.log('-----------------' + data + '---------------') })
const fs = require('fs'); function getFilePath(fpath) { return new Promise( function (resolve, reject) { fs.readFile(fpath, 'utf-8', (err, dataStr) => { if (err) return reject(err); resolve(dataStr) }) } ) } getFilePath('./沒有這個文件.txt') .then( function (data) { console.log('-----------------' + data + '---------------') return getFilePath('./2.txt') }, function (err) { console.log(err.message) return getFilePath('./2.txt') }) .then( function (data) { console.log('-----------------' + data + '---------------') return getFilePath('./3.txt') }) .then( function (data) { console.log('-----------------' + data + '---------------') })
const fs = require('fs'); function getFilePath(fpath) { return new Promise( function (resolve, reject) { fs.readFile(fpath, 'utf-8', (err, dataStr) => { if (err) return reject(err); resolve(dataStr) }) } ) } getFilePath('./1.txt') .then( function (data) { console.log('-----------------' + data + '---------------') return getFilePath('./2.txt') }) .then( function (data) { console.log('-----------------' + data + '---------------') return getFilePath('./22.txt') }) .then( function (data) { console.log('-----------------' + data + '---------------') return getFilePath('./3.txt') }) .catch(function (err) { console.log('【本身】捕獲到的錯誤'+ err.message) })
const fs = require('fs'); function getFilePath(fpath) { return new Promise( function (resolve, reject) { fs.readFile(fpath, 'utf-8', (err, dataStr) => { if (err) return reject(err); resolve(dataStr) }) } ) } Promise.all([getFilePath('./1.txt'), getFilePath('./不存在.txt'), getFilePath('./1.txt')]) .then(datas => { console.log(datas); }) .catch(err => { console.log(err) })