zoukankan      html  css  js  c++  java
  • promise使用

    基本使用

    // 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)
    })
    

      

  • 相关阅读:
    yum install nginx
    逻辑分区增加空间 vm中
    pbspro build rpm and installation
    centos 6 and 7 to modify hostname
    activeMQ
    cgo在mac上编译
    redis学习
    Spring Boot 2+gRPC 学习系列1:搭建Spring Boot 2+gRPC本地项目
    KumuluzEE
    前端实现“查看更多”效果
  • 原文地址:https://www.cnblogs.com/tuziling/p/10828133.html
Copyright © 2011-2022 走看看