美文网首页
Node promisify介绍经典的闭包实现

Node promisify介绍经典的闭包实现

作者: 萘小蒽 | 来源:发表于2022-12-21 12:14 被阅读0次

我理解的是promisify是用来处理回调问题的,就这么简单。

ES6 ES7出现了一批处理异步的函数,Promise Generator ansyc/await;

比如在ES6之前我们读写文件就是依赖回调

var  fs = requier('fs')
fs.readFile('./index.vue',(err,data)=>{
    console.log(data.toString())
})

promisify

const fs = require('fs');
const {promisify} = require('util');
const readFile = promisify(fs.readFile);
( ansyc()=>{   //模拟使用场景
  const data = await readFile('./index.vue');
})

promisify实现

function promisify(fn) {
    console.log(fn,"fn"); // 保存的是原始函数(add)
    return function (...args) {
        console.log(...args,"...args"); // 2 6 保存的是调用时的参数
        //返回promise对象
        return new Promise(function (resolve, reject) {
            // 将callback放到参数末尾,并执行callback函数
            args.push(function (err, ...arg) {
                console.log('..............arg',arg)
                if (err) {
                    reject(err);
                    return;
                }
                resolve(...arg);
            });

            fn.apply(null, args);
        });
    }
}

相关文章

  • Python闭包

    闭包 = 环境变量 + 函数 调用闭包内部的环境变量 闭包的经典误区 闭包与非闭包实现人类走路 非闭包 闭包

  • JavaScript深入之闭包

    JavaScript深入系列第八篇,介绍理论上的闭包和实践上的闭包,以及从作用域链的角度解析经典的闭包题。 定义 ...

  • 闭包 Closure

    内容摘要: 闭包介绍 闭包表达式 尾随闭包 值捕获 逃逸闭包 自动闭包 一、闭包介绍 闭包是自包含的函数代码块,可...

  • 从 QuickJS 源码理解 JavaScript 的闭包

    摘要 本文从 QuickJS 源码的角度分析 JavaScript 语言中的闭包的实现原理,首先介绍闭包的概念,然...

  • 闭包(closure)

    ● 闭包基础 ● 闭包作用 ● 闭包经典例子 ● 闭包应用 ● 闭包缺点 ● 参考资料 1、闭包基础 作用域和作...

  • 闭包的声明 实现以及调用

    1闭包的声明 闭包的实现 闭包的调用

  • 控制div属性

    本文主要介绍简单实现控制div属性,该例子也可作为闭包的一个实例(虽然对于闭包仍然知之不详),同时记录实现过程的一...

  • 实现 node 中异步函数的 promisify

    参考来源 实现一个promisify()方法 - 掘金[https://juejin.cn/post/684490...

  • JavaScript - 闭包

    理解 关于闭包 答案: 用arguments.callee和闭包实现的函数封装 应用 利用闭包实现自动递增计数

  • js闭包问题

    javascript 闭包的概念,闭包的作用,闭包经典面试题详解(配图解) 函数作用域(闭包前置知识) 要彻底弄懂...

网友评论

      本文标题:Node promisify介绍经典的闭包实现

      本文链接:https://www.haomeiwen.com/subject/uwhmqdtx.html