【移动应用开发技术】小程序开发中如何利用co处理异步流程_第1页
【移动应用开发技术】小程序开发中如何利用co处理异步流程_第2页
【移动应用开发技术】小程序开发中如何利用co处理异步流程_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】小程序开发中如何利用co处理异步流程

这篇文章主要介绍小程序开发中如何利用co处理异步流程,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!微信小程序利用co处理异步流程的方法教程coco是一个基于ES6Generator特性实现的【异步流程同步化】写法的工具库。co需要使用Promise特性,所以,我们先来创建一个使用Promise来处理的异步方法:function

myAsyncFunc()

{

return

new

Promise(function

(resolve,

reject)

{

setTimeout(function

()

{

console.log("myAsyncFunction

done!");

resolve({

data:

"Hello,World"

})

},

2000);

});

}然后,直接使用这个方法的话,就会如下,使用了then/catch的回调方式来处理调用结果和异常处理:myAsyncFunc().then(function

(result)

{

console.log(result.data);

//Hello,World

}).catch(function

(err)

{

//...

});而如果是使用co的话,则会像这样:co(function

*()

{

try

{

var

result

=

yield

myAsyncFunc();

console.log(result.data);

//Hello,World

}

catch(e)

{

}

});这样的写法,是不是就是我们非常熟悉的,比较符合逻辑思维习惯的同步写法了?关于co的用法,在本文中我就不多展开了,有兴趣的朋友可以自行搜索相关资料。我今天要讲的是,如何在小程序环境下面成功的使用co。1.开启语言转译选项由于要使用到ES6的generator,而又要为了兼容性,我们必须对ES6的语法进行降级转译,变成ES5。开启语言转译选项2.引入generator支撑库经过转译后的代码,需要依赖一个regeneratorRuntime,才能支持generator特性。Facebook开源的一个regenerator就是这样一个库,Github地址:/facebook/regenerator/你可以通过npm来下载这个regenerator库:npm

install

regenerator然后将下载文件中名为regenerator-runtime.js的文件拿出来,放到我们的小程序代码中去。3.下载co和Promise库接着,通过npm下载co库:npm

install

co将下载文件中名为co.js文件拿出来,放到我们的小程序代码中去。因为需要依赖Promise,所以我们需要引入一个Promise实现库。在此我们选用一个小而兼容性好的库es6-promise。同样可以通过npm下载:npm

install

es6-promise将es6-promise.js放到我们的小程序代码中。4.引入小程序代码中使用前,将这些库正确的引入我们的代码:const

Promise

=

global.Promise

=

require('../../libs/es6-promise')

const

regeneratorRuntime

=

global.regeneratorRuntime

=

require('../../libs/rege

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论