当前位置: 首页 > news >正文

建公司网站哪里好3000元网站建设三年

建公司网站哪里好,3000元网站建设三年,网站建设有创意,建筑工程网络图计算方法来源:Nodejs 第十八章(util) util 是Node.js内部提供的很多实用或者工具类型的API util.promisify 用于将遵循Node回调风格(即最后一个参数为回调函数)的函数转换成返回Promise的函数,这样可以使得异步代…

来源:Nodejs 第十八章(util)
util 是Node.js内部提供的很多实用或者工具类型的API

util.promisify

用于将遵循Node回调风格(即最后一个参数为回调函数)的函数转换成返回Promise的函数,这样可以使得异步代码更容易使用和维护
常规获取node版本

const {exec} = require('child_process')
exec('node -v', (err, stdout, stderr) => {if (err) {console.error(`执行出错:${err}`);return;}console.log(`stdout: ${stdout}`);console.error(`stderr: ${stderr}`);
})

promise风格获取,Promiseify 接受 original一个函数体

const util = require('util');
const {exec} = require('child_process');
const execPromise = util.promisify(exec)
execPromise('node -v').then(res =>{console.log('res', res)
}).catch(err =>{console.log('err', err)
})

在这里插入图片描述

promisify实现原理

1、promisify返回一个新的函数
2、接收一个函数,作为参数,并在返回的函数中接收真正的参数,然后返回一个promise
3、调用真正的函数,并将参数透传给original,如果失败了就reject,如果成功就resolve

util.callbackify(original)

将promise类型的API转回成回调函数形式

const util = require('util')
const fn = (type) =>{if(type == 1){return Promise.resolve('test')}return Promise.reject('error')
}
const callback= util.callbackify(fn)
callback(1, (err, val) =>{console.log(err,val)
})

在这里插入图片描述

const util = require('util')
const fn = (type) =>{if(type == 1){return Promise.resolve('test')}return Promise.reject('error')
}
const callback= util.callbackify(fn)
callback(1122, (err, val) =>{console.log(err,val)
})

在这里插入图片描述

callbackify实现原理

1、接收原始函数,callbackify接受一个返回promise的函数作为参数
2、创建一个新函数:这个新函数会接收与原始函数相同的参数,但会在最后多一个回调函数(node的回调风格)
3、处理promise的结果
如果Promise成功(resolved),则调用回调函数并传递null作为第一个参数,表示没有错误,以及Promise的结果作为第二个 参数
如果Promise失败(rejected), 则调用回调函数并传递错误对象作为第一个参数,第二个参数为undefined

function callbackify(originalFunction){return function(...args){// 获取最后一个参数作为回调函数const callback = args.pop();if(typeof callback !== 'function'){throw new TypeError('The last argument must be a function')}// 调用原始函数,并获取promiseconst promise = originalFunction.apply(this, args)if(!(promise instanceof Promise)){return callback(new TypeError('The function must return a Promise'))}// 处理promise结果promise.then(result =>{// promise成功,调用回调函数并传递null和结果callback(null, result)}, error =>{// promise失败,调用回调函数并传递错误callback(error)}) }
}
// 使用
const fn = (type) => {if (type === 1) {return Promise.resolve('test');}return Promise.reject('error');};const callback = callbackify(fn);callback(1, (err, val) => {console.log(err, val); // 输出: null 'test'});callback(2, (err, val) => {console.log(err, val); // 输出: 'error' undefined});

util.format()

使用第一个参数作为类似printf的格式字符串(可包含零个或多个格式说明符)来返回格式化的字符串,每个说明符都替换为来自相应参数的转换后的值,如果说明符没有相应的参数,则不会替换它
格式字符串是由%引导的,用来控制字符串输出的格式
支持的说明符有:
%s: String 将用于转换除 BigInt、Object 和 -0 之外的所有值。 BigInt 值将用 n 表示,没有用户定义的 toString 函数的对象使用具有选项 { depth: 0, colors: false, compact: 3 } 的 util.inspect() 进行检查

%d: Number将用于转换除BigInt和Symbol之外的所有值

%i: parseInt(value, 10)用于除BigInt和Symbol之外的所有值

%f: parseFloat(value) 用于除 Symbol 之外的所有值

%j: JSON.如果参数包含循环引用,则替换为字符串 ‘[Circular]’

%o: Object。具有通用 JavaScript 对象格式的对象的字符串表示形式。类似于具有选项 { showHidden: true, showProxy: true } 的 util.inspect()。这将显示完整的对象,包括不可枚举的属性和代理

%O: Object。具有通用 JavaScript 对象格式的对象的字符串表示形式。类似于没有选项的 util.inspect()。这将显示完整的对象,但不包括不可枚举的属性和代理。

%c:CSS。此说明符被忽略,将跳过任何传入的 CSS

%%:单个百分号 (‘%’)。这不消费参数。

const util = require('util');
//说明符没有相应的参数,则不会替换它
console.log(util.format('%s:%s', 11));//11:%s
//参数多于说明符的数量,则额外的参数将以空格分隔串联到返回的字符串
console.log(util.format('%s:%s', 'foo', 'bar', 'baz'));//foo:bar baz
http://www.yayakq.cn/news/46245/

相关文章:

  • 怎么做淘宝客优惠劵网站网站建设过程与思路
  • 网站网站建设平台手机网页打不开是什么原因
  • 湘潭市网站建设重庆节点建筑设计咨询有限公司
  • 上线了做网站多少钱长春网站建设技术托管
  • 北京网站推广营销策划企业营销网站案例
  • 上海网站开发服务商精品一卡2卡三卡4卡二百信息网
  • wordpress 多站点 用户手机网站底部漂浮代码
  • 网站根目录验证文件是什么制作网站技术
  • gvm网站是什么类的网站网页制作公司企业愿景
  • 湖南基础建设投资集团网站微信链接网站怎么做的
  • 微信平台的微网站怎么做将电脑做的网站放到外网
  • 乐清站在哪查企业去哪个网站
  • server2008网站建设长沙网站建设维护
  • 企业建设网站的价值淘宝网站是谁做的好处
  • 网站建设 图片上传什么网站可以做片头
  • 怎么在静态网站基础上加动态搭建网站的六个基本步骤流程
  • 响应式网站搭建网站空间密码
  • 海外网站推广中国建设银行广东分行网站
  • wordpress广告推广插件做网站推广 seo的
  • 做电影网站侵权吗网站微信支付怎么做的
  • 免费舆情网站cms网站管理系统源码
  • 网页设计与网站建设考试热点好玩的网页游戏排名
  • 网站开发需要后台吗商会网站制作
  • ip动态地址做网站沈阳手机网站制作
  • 电商网站开发外包买域名不建网站
  • 哈尔滨企业网站咨询网站搭建
  • 五金制品网站源码购买型网站建设
  • 徐州徐州网站建设网站主要功能
  • 网站建站中关键字搜索怎么弄怎么选择徐州网站开发
  • 引擎网站合肥网站建设百家号