• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >微信小程序 > 使用Promise简化回调

使用Promise简化回调

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-11-30

匿名通过本文主要向大家介绍了Promise,简化,使用等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
// 模拟获取code,然后将code传给后台,成功后获取userinfo,再将userinfo传给后台 // 登录 wx.login({ success: res => { let code = res.code // 请求 imitationPost({ url: '/test/loginWithCode', data: { code }, success: data => { // 获取userInfo wx.getUserInfo({ success: res => { let userInfo = res.userInfo // 请求 imitationPost({ url: '/test/saveUserInfo', data: { userInfo }, success: data => { console.log(data) }, fail: res => { console.log(res) } }) }, fail: res => { console.log(res) } }) }, fail: res => { console.log(res) } }) }, fail: res => { console.log(res) } })

下面分析如何用Promise来进行简化代码

因为微信小程序异步api都是success和fail的形式,所有有人封装了这样一个方法:

promisify.js

module.exports = (api) => { return (options, ...params) => { return new Promise((resolve, reject) => { api(Object.assign({}, options, { success: resolve, fail: reject }), ...params); }); } }

先看最简单的:

// 获取系统信息 wx.getSystemInfo({ success: res => { // success console.log(res) }, fail: res => { } })

使用上面的promisify.js简化后:

const promisify = require('./promisify') const getSystemInfo = promisify(wx.getSystemInfo) getSystemInfo().then(res=>{ // success console.log(res) }).catch(res=>{ })

可以看到简化后的回调里少了一个缩进,并且回调函数从9行减少到了6行。

回调金字塔的简化效果

那么再来看看最开始的那个回调金字塔

const promisify = require('./promisify') const login = promisify(wx.login) const getSystemInfo = promisify(wx.getSystemInfo) // 登录 login().then(res => { let code = res.code // 请求 pImitationPost({ url: '/test/loginWithCode', data: { code }, }).then(data => { // 获取userInfo getUserInfo().then(res => { let userInfo = res.userInfo // 请求 pImitationPost({ url: '/test/saveUserInfo', data: { userInfo }, }).then(data => { console.log(data) }).catch(res => { console.log(res) }) }).catch(res => { console.log(res) }) }).catch(res => { console.log(res) }) }).catch(res => { console.log(res) })

可以看到简化效果非常明显。

同样适用于网页或者nodejs等中。

相关推荐:

Promise简化回调实例分享

微信小程序getUserInfo回调详解

jQuery回调方法使用详解

以上就是使用Promise简化回调的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 微信小程序 es6-promise.js封装请求与处理异步进程
  • 微信小程序promsie.all和promise的顺序执行
  • 使用Promise简化回调
  • 微信小程序Promise简化回调实例分享
  • 微信小程序中Promise进行异步流程处理的实现过程
  • 微信小程序支持Promise的方法介绍

相关文章

  • 2018-11-30分享利用小程序获取与解密微信步数可以获取当日数据的方法
  • 2018-11-23微信小程序云开发服务端数据库API 创建集合
  • 2018-11-30微信小程序 View:flex 布局实例
  • 2018-11-30微信小程序仿美团城市选择的实现
  • 2018-11-30微信小程序的火车票查询的代码
  • 2018-11-30分享微信小程序下载地址微信小程序开发的破解教程
  • 2018-11-30微信小程序:数据绑定讲解
  • 2018-11-30分享一个简单的小程序demo
  • 2018-11-30微信小程序图片预览功能的实现代码
  • 2018-11-30JS文字间歇循环滚动效果怎么实现

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 微信小程序开发实例总结
    • 实现猜后台的HTA小程序的多种方法
    • 如何操作webpack处理文件
    • 微信小程序常用快捷键整理总结
    • 关于微信小程序中WXSS的介绍
    • 微信小程序 弹窗自定义的代码
    • 小程序:防止点击遮罩层后遮罩层下面也反应的解决方法
    • 微信小程序开发:如何实现网络请求(GET请求)
    • 微信小程序开发经验总结
    • 微信小程序高仿手机QQ应用程序

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有