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

      

  • 相关阅读:
    Http方法:Get请求与Post请求的区别
    udev和rules使用规则
    c++中的动态内存分配
    c++中重载运算符
    c++中静态成员函数
    c++中值传递,址传递,引用传递
    c++中实现单例模式singleton class
    [Windows篇] 在windows 10上源码编译gtest 并编写CMakeLists.txt
    [Ubuntu篇] 在ubuntu上源码编译gtest,编写gtest-config.cmake并测试
    使用boost data_time模块来获取毫秒级时间并转换为string字符串
  • 原文地址:https://www.cnblogs.com/tuziling/p/10828133.html
Copyright © 2011-2022 走看看