• 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
  • 微信公众号
您的位置:首页 > 程序设计 >微信小程序 > 微信小程序中异步处理实例详解(async/await)

微信小程序中异步处理实例详解(async/await)

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

匿名通过本文主要向大家介绍了小程序,异步处理等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
Promise和co都搞过了,终于还是忍不住要折腾,上ES7的终极方案:async/await。

async/await也是和Promise配合使用的, 先来看一下示例代码,这个用法和我们之前讲的co的用法是极其相似的:

function myAsyncFunc() {
  return new Promise(function (resolve, reject) {
    setTimeout(function () {
      console.log("myAsyncFunction done!");
      resolve({data: "Hello,World"});
    }, 5000);
  });
}

async function test() {
  var result = await myAsyncFunc();
  console.log(result.data); //Hello,World
}

test();

要在小程序中使用async/await的话,靠微信web开发者工具中的Babel转换工具是不够的了,因为需要一些额外的Babel插件来编译使用了async/await的代码。所以这次我们得自己写脚本来调用Babel。

在项目中,我们得先关闭“开启ES6转ES5”这个选项,因为我们现在要自己来做这件事情。


关闭选项

然后,我准备用Gulp来写我的脚本,从Gulp中调用Babel来编译我的代码。当然你也可以用你其他的工具如Grunt, Webpack之类的,你可以参考这里来了解如何在你使用的build工具中使用Babel。

重要的一点是,我们调用Babel时,需要给我们的Babel配置插件以支持async/await,比如async-to-generator,async-generator-functions等插件。方便起见,直接使用preset(也就是官方配置好的插件包),es2017或latest这两个preset其中之一都能满足我们的需要。

这是Babel的配置文件:.babelrc

{  
  "presets": [ "latest" ],  
  "plugins": []
}

然后在我的gulpfile.js中,我会将我的小程序项目下所有的js文件都通过Babel编译:

gulp.task('scripts', () => {  
  return gulp.src('./src/**/*.js')    
    .pipe(babel())
    .pipe(gulp.dest('./dist'))
})

好了,这是我们编译我们的代码所要做的工作。接下来,我们讲一下在小程序代码中要做的一些改动:

1. 引入generator支撑库

经过Babel转译后的代码,会把aysnc/await的功能通过类似co库的方式来实现,即要使用到generator,所以,和我们使用co的时候一样,需要依赖一个regeneratorRuntime,才能支持generator特性。我们可以使用Facebook开源的regenerator库。你可以通过npm来下载这个regenerator库:

npm install regenerator

然后将下载文件中名为regenerator-runtime.js的文件拿出来,放到我们的小程序代码中去。

2.引入代码

在需要使用async/await特性的代码文件中,引入regenerator库:

const regeneratorRuntime = require('../../libs/regenerator-runtime')

然后,你就可以放心的在你的代码里使用async/await来写异步处理了。

以上就是微信小程序中异步处理实例详解(async/await)的详细内容,更多请关注微课江湖其它相关文章!

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

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

  • 微信小程序跟读 demo代码
  • 微信小程序-GetWeApp聊天室 代码
  • 微信小程序Canvas增强组件 代码demo
  • 微信小程序demo 仿手机淘宝
  • 微信小程序Markdown渲染库
  • 微信小程序 Artand 瀑布流风格 代码demo
  • 微信小程序高仿手机QQ应用程序
  • 微信小程序-小商城前台
  • 微信小程序仿手机淘宝demo代码
  • 微信小程序仿Apple Music demo代码

相关文章

  • 2018-11-30微信小程序之for循环详解
  • 2018-11-30微信小程序联网请求的轮播图
  • 2017-06-20微信小程序商城demo代码
  • 2018-11-30小程序项目基本配置
  • 2018-11-30ES6新特性开发微信小程序(10)
  • 2018-11-30微信小程序版的知乎日报开发实例介绍
  • 2018-11-30微信小程序 高德地图SDK的解析
  • 2018-11-30微信小程序表单验证功能完整实例
  • 2018-11-30微信小程序开发(三)名片夹详情页实例教程
  • 2018-11-30关于微信小程序的动画效果的实现

文章分类

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

最近更新的内容

    • 微信小程序 image组件binderror使用例子与js中onerror的区别分析
    • 关于小程序研发的文章推荐
    • 关于微信小程序中欢迎页面的制作
    • 微信开发之js实现tabs选项卡效果
    • 微信小程序列表的上拉加载和下拉刷新的实现
    • 小程序中如何实现分享功能 (代码示例)
    • 微信小程序分享时可自定义配图新功能
    • 有关企业付款的文章推荐6篇
    • 最全的微信小程序项目实例
    • 微信小程序开发的一些经验

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

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