node.js 使用promise

Promise:

  • promise是一个构造函数,方法有all、reject、resolve这几个,原型上有then、catch等方法。那么new Promise 出来的对象肯定就有then、catch方法

状态说明

Promise有三种状态:pendingfulfilledrejected

  • pending指初始等待状态,初始化Promise的状态
    const p1 = new Promise((resolve, reject) => {
    
    })
    console.log(p1)//Promise { <pending> }
    
  • resolve指已经解决,将Promise的状态设置为fulfilled
    const p1 = new Promise((resolve, reject) => {
        resolve('我很满意')
    })
    console.log(p1)//我很满意
    
  • reject指拒绝处理,将prosime状态设为为rejected
    const p1 = new Promise((resolve, reject) => {
        reject('拒绝了你的承诺')
    })
    console.log(p1)//拒绝了你的承诺
    

    Promise创建时立即执行同步任务,then会放在异步微任务中执行,需要等到同步任务执行后在执行

promise 对象还可调用两个方法,一个叫then,一个叫catch

 当这个promise对象内部的resolve被调用,就会执行then里的代码

 当这个promise对象内部的reject被调用,就会执行catch里的代码

// 导入fs filesystem 文件管理模块

const fs = require('fs')


const { resolve } = require('path')

// 构建一个promise对象

const ps = new Promise((resolve, reject) => {

    // 调用fs模块中的readFile方法
    fs.readFile('./1.txt', (err, data) => {

        // 读取01.txt文件夹成功的情况
        if (!err) {

            // 调用 resolve 方法并传入读取到的内容

            resolve(data)

        } else {
            // 读取失败,调用reject方法,并传入错误信息
            resolve(err)
        }
    })
})

// promise 对象还可调用两个方法,一个叫then,一个叫catch
// 当这个promise对象内部的resolve被调用,就会执行then里的代码
// 当这个promise对象内部的reject被调用,就会执行catch里的代码

ps
    .then(res => {
        console.log('then调用' + res);
    })
    .catch(err => {
        console.log('catch调用' + err);
    })

猜你喜欢

转载自blog.csdn.net/PCthedream/article/details/127871933