网站首页 > 博客文章 正文
看到一个面试题,原生小程序中api的调用,都是回掉函数,怎么处理成优雅的链式调用呢?
那肯定是通过promise 封装起来啊,怎么封装呢?很简单,代码如下
/**
*
* promisify化api
*
* @param {string} swan 小程序(swan, wx等)
* @param {string} method api名字
* @param {object} options api参数
* @return {function(*=): Promise<*>} promisify的api
*/
export default const promisify = swan => method => 。options => new Promise((resolve, reject) => {
if (!swan[method]) {
reject();
}
swan[method]({
...options,
success: res => resolve(res),
fail: err => reject(err)
});
});
封装起来很简单,我想把封装好的东西,可以让其他人公用,但是不想每次需要用的时候都要手动copy代码,怎么办呢?网上有很多教程,我这边记录一下我选用的cnpm搭建的过程
通过cnpm搭建自己的私仓库
1.安装
npm install -g --build-from-source cnpmjs.org cnpm sqlite3
# 如果报错或者警告通过下面方式安装
npm install -g --unsafe-perm --verbose --build-from-source cnpmjs.org cnpm sqlite3
2.启动并配置服务
// 管理员:eric@baidu.com
// 范围:@duer
// 默认端口:7001-registry, 7002-web
nohup cnpmjs.org start --admins='10xxxxxx@qq.com' --scopes='@duer'
3.设置注册地址
将cnpm默认注册地址更改为私有注册地址
cnpm set registry http://localhost:7001
4.登录cnpm
5.创建上传到私有库
把开头我们promisify的文件,上传到我们的私有库
cnpm publish
6.预览我们的包
浏览器预览我们的包
open http://localhost:7002/@duer/promisify
7.安装
cnpm install @duer/promisify
好了,就到这里了。
注: 既然已经封装好了,就把连接贴出来吧
https://github.com/airwaycai/promisify/blob/master/index.ts
猜你喜欢
- 2024-11-17 应用号,传统APP的革命?(应用号不存在是什么意思)
- 2024-11-17 带你重新认识身边的前端工程师(前端工程师干什么的)
- 2024-11-17 Axure有哪些鲜为人知的使用技巧?(axure详细教程)
- 2024-11-17 英特尔 Evo 认证 PC 对决 M1 Macbook:x86 生态加持,Evo 更省心
- 2024-11-17 手把手教你搭建漂亮好看的个人网站
- 2024-11-17 高保真原型应保真到什么程度?(高保真原型应保真到什么程度才能用)
- 2024-11-17 如何提高npm 下载依赖过慢的问题(npm下载包)
- 2024-11-17 Linux 下源码安装Kong(基于数据Postgres)
- 2024-11-17 NPM升级package.json中的版本号以及更换数据源
- 2024-11-17 Node实战001:Windows搭建Node开发环境
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)