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

      

  • 相关阅读:
    axios
    JavaScript ES6部分语法
    JSP 基础之 JSTL <c:forEach>用法
    JS ajxa请求 返回数据
    java中的各种数据类型在内存中存储的方式
    sql之left join、right join、inner join的区别
    错误”ORA-12560: TNS: 协议适配器错误“解决方法
    Hibernate 和 Mybatis的区别
    eclipse启动几秒后报错 (一闪而过)
    sql ---- count 误区
  • 原文地址:https://www.cnblogs.com/tuziling/p/10828133.html
Copyright © 2011-2022 走看看