ES6学习笔记(三)

111 阅读1分钟

Promise

Promise是ES6引入的一个异步操作全新解决方案

写法:

        // 实例化Promise对象
        const p = new Promise(function (resolve,reject) {
            setTimeout(() => {
                let data = '数据库中的用户数据';
                // 业务成功,调用 resolve 方法后,Promise对象的状态就会变为成功 resolved 或 fulfilled
                // resolve(data);

                // 业务失败,调用 reject 方法后,Promise对象的状态变为失败 rejected
                let err = '数据读取失败'
                reject(err)
            }, 1000);
        })

        // 调用 Promise 对象的 then 方法
        p.then(function(value) {
            // 如果在异步操作中调用了 resolve 方法,则then方法中,执行第一个函数
            console.log(value);
        },function(reason) {
            // 如果在异步操作中调用了 reject 方法,则then方法中,执行第二个函数
            console.error(reason)
        })

示例:读取文件

    let fs = require('fs');

    // fs.readFile('./悯农.md',(err,data)=>{
    //     if (err) throw err;
    //     console.log(data.toString());
    // })

    // 使用Promise封装读取文件操作
    const p = new Promise(function (resolve, reject) {
        fs.readFile('./悯农.md', (err, data) => {
            // 如果失败
            if (err) reject(err)
            // 如果成功
            resolve(data.toString())
        })
    })

    p.then(function (value) {
        console.log(value)
    }, function (reason) {
        console.error(reason)
    })