• 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简化回调

作者:匿名 字体:[增加 减小] 来源:互联网

匿名通过本文主要向大家介绍了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的方法介绍

相关文章

  • 微信小程序开发之仿建行圆形菜单实例代码
  • 微信小程序开发经验总结
  • 微信小程序如何实现顶部普通选项卡非swiper效果的实例
  • 有关优劣比较的4篇文章推荐
  • 关于微信小程序的生命周期的解析
  • 微信小程序表单组件 picker
  • 微信小程序框架视图层(View)
  • 快递查询-微信小程序开发实例教程
  • 微信如何将小程序应用显示在顶部
  • 微信小程序-获得用户输入内容

文章分类

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

最近更新的内容

    • 微信小程序图片展示demo代码
    • 如何解决微信小程序 加载 app-service.js 的错误
    • 微信小程序使用modal组件弹出对话框实例分享
    • 实例讲解微信小程序倒计时功能
    • 关于微信小程序设置http请求的步骤
    • 微信小程序 兼容
    • 微信小程序 scroll-view隐藏滚动条详解
    • 微信小程序表单组件多行输入框 textarea
    • 微信小程序怎么实现蓝牙连接?(代码示例)
    • ES6新特性开发微信小程序(6)

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

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