基本使用
- // new 做了什么
- // 1. 创建一个新的空对象
- // 2. 将构造函数中的 this 指向这个新空对象
- // 3. 执行构造函数中的代码
- // 4. 返回这个对象
- // 5. 这个对象上有一个__proto__指向构造函数的原型
- var promise = new Promise((resolve, reject) => {
- var flag = false
- if (flag) return resolve()
- reject()
- })
- promise.then((res) => {
- var a = '成功回调'
- console.log(a, 11111)
- }, (err) => {
- var b = '失败回调'
- console.log(b, 22222)
- })
函数封装
- // new 做了什么
- // 1. 创建一个新的空对象
- // 2. 将构造函数中的 this 指向这个新空对象
- // 3. 执行构造函数中的代码
- // 4. 返回这个对象
- // 5. 这个对象上有一个__proto__指向构造函数的原型
- // 定义一个函数包起来
- function promiseTest () {
- var promise = new Promise((resolve, reject) => {
- var flag = false
- if (flag) return resolve()
- reject()
- })
- return promise
- }
- /* var a = promiseTest()
- console.log(a)
- a.then((res) => {
- var a = '成功回调'
- console.log(a, 11111)
- }, (err) => {
- var b = '失败回调'
- console.log(b, 22222)
- }) */
- promiseTest().then((res) => {
- var a = '成功回调'
- console.log(a, 11111)
- }, (err) => {
- var b = '失败回调'
- console.log(b, 22222)
- })
promise 读取文件
- const fs = require('fs')
- const path = require('path')
- // 读取文件成功之后 帮我调用 success 函数 如果读取失败帮我调用 fail 函数
- /*function success () {
- console.log(` 成功了 `)
- }
- function fail () {
- console.log(` 失败 `)
- }
- fs.readFile(path.join(__dirname, './files/1.txt'), 'utf8', (err, data) => {
- if (err) return fail()
- success()
- }) */
- // 用 promise 写
- function ReadFilePromise () {
- return new Promise(function(resolve, reject) {
- fs.readFile(path.join(__dirname, './files/1.txt'), 'utf8', (err, data) => {
- if (err) return reject()
- resolve()
- })
- })
- }
- ReadFilePromise().then((res) => {
- console.log('成功了')
- }, (err) => {
- console.log('失败了')
- })
- const fs = require('fs')
- const path = require('path')
- // 用 promise 写
- function ReadFilePromise (name) {
- return new Promise(function(resolve, reject) {
- fs.readFile(path.join(__dirname, `./files/${name}`), 'utf8', (err, data) => {
- if (err) return reject(err)
- resolve(data)
- })
- })
- }
- ReadFilePromise('1.txt')
- .then((res) => {
- console.log(res)
- return ReadFilePromise('2.txt')
- })
- .then((res) => {
- console.log(res)
- return ReadFilePromise('3.txt')
- })
- .then((res) => {
- console.log(res)
- })
- .catch(err => {
- console.log(err)
- })
来源: http://www.bubuko.com/infodetail-3050340.html