作者:一斤代码,来自授权地址co是一个基于ES6 Generator特性编写【异步进程同步】的工具库。
Co需要使用Promise特性,所以让我们首先创建一个由Promise处理的异步方法:
函数myAsyncFunc() {返回新的Promise(函数(解析,拒绝){ setTimeout(函数(){ console . log(' myasync function done!');resolve({ data: 'Hello,World' }) },2000);});}然后,如果直接使用这个方法,会如下,然后用/catch回调方法处理调用结果和异常处理:
myAsyncFunc()。然后(function(result){ console . log(result . data);//你好,世界})。catch(函数(err) { //.});如果使用co,它将如下所示:
co(function *){ try { var result=yield myasync func();console . log(result . data);//Hello,World } catch(e){ } });这不就是我们非常熟悉的,更符合逻辑思维习惯的同步写作吗?
关于co的用法,这篇文章我就不详细讲了。感兴趣的朋友可以自行搜索相关信息。今天我要讲的是如何在小程序环境下成功使用co。
为了使用ES6的生成器,为了兼容性,我们必须将ES6的语法降级并翻译成ES5。
打开语言翻译选项。