zoukankan      html  css  js  c++  java
  • promise

    var fs = require('fs')
    
    //promise不是异步,但往往在里面封装 异步API
    var p = new Promise(function (res, rej) { fs.readFile('./00.txt','utf8', function (err, data) { if (err) { rej(err) } else { //pending 状态改变为 resolved res(data) } }) }) var p1 = new Promise(function (res, rej) { fs.readFile('./01.txt','utf8', function (err, data) { if (err) { rej(err) } else { res(data) } }) }) //当p 成功/失败了 然后(then) 做指定的操作,then方法接受的function 就是容器中的 res 函数 p .then(function (data) { console.log(data) return p1 //p1 中的res函数就是下一个then方法的第一个参数 }, function (err) { console.log('读取文件失败') }) .then(function (data) { console.log(data) }, function (err) { console.log('读取文件失败') })

    封装 promise

    var fs = require('fs')
    
    function pReadFile(path) {
        return new Promise(function (res, rej) {
            fs.readFile(path,'utf8', function (err, data) {
                if (err) {
                    rej(err)
                } else {
                    res(data)
                }
            })
        })
    }
    
    pReadFile('./00.txt')
        .then(function (data) {
            console.log(data)
            return pReadFile('./01.txt')
        }, function (err) {
            console.log('读取文件失败')
        })
        .then(function (data) {
            console.log(data)
        }, function (err) {
            console.log('读取文件失败')
        })
    var fs = require('fs')
    var p = new Promise(function (res, rej) {
        fs.readFile('./00.txt','utf8', function (err, data) {
            if (err) {
                rej(err)
            } else {
                //pending 状态改变为 resolved
                res(data)
            }
        })
    })
    var p1 = new Promise(function (res, rej) {
        fs.readFile('./01.txt','utf8', function (err, data) {
            if (err) {
                rej(err)
            } else {
                //pending 状态改变为 resolved
                res(data)
            }
        })
    })
    //当p 成功了 然后(then) 做指定的操作,then方法接受的function 就是容器中的 res 函数
    p
        .then(function (data) {
            console.log(data)
            return p1   //p1 中的res函数就是下一个then方法的第一个参数
        }, function (err) {
            console.log('读取文件失败')
        })
        .then(function (data) {
            console.log(data)
        }, function (err) {
            console.log('读取文件失败')
        })
  • 相关阅读:
    Winform中多线程无法访问使用 Control.CheckForIllegalCrossThreadCalls = false;
    PV操作-生产者/消费者关系
    table表格长度超出屏幕范围,可滑动
    Koa2中间件计算响应总耗时/设置响应头/读取Json文件返回给客户端
    Koa2简介和搭建
    计算机浮点数的表示和运算
    CSS实现Loading加载中动画
    RPC
    Git常用命令
    如何解决 shell 脚本重复执行的问题
  • 原文地址:https://www.cnblogs.com/huangyuanning/p/11858004.html
Copyright © 2011-2022 走看看