nodejs中的异步函数async/await
最近做了一个比较大的项目叫脉冲云,脉冲云是一个开发流程效率提高工具,快速的编译构建、简洁的服务器部署,轻松的服务器集群管理,可以及大的提高开发人员的开发效率.
脉冲云使用了Nodejs做为开发语言,前端页面使用了react技术。B/S项目一般都离不开异步操作,脉冲云也是,该项目中使用了大量的async函数,async应该是目前nodejs里最简单直白的异步方案了,async函数实际上就是generator函数的语法糖,省掉了callback的回调地狱,generator的yield next,promise的 .then .catch,使代码看起来更像是同步流程方案,更扁平化。
下面看个例子:
这里我们要实现一个暂停功能,输入N毫秒,则停顿N毫秒后才继续往下执行。
// 这里是一个功能函数 也可以是其他比较耗时的操作。
var sleep = function (time) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
resolve();
}, time);
})};
var start = async function () {
// 在这里使用起来就像同步代码那样直观
console.log('start');
最近做了一个比较大的项目叫脉冲云,脉冲云是一个开发流程效率提高工具,快速的编译构建、简洁的服务器部署,轻松的服务器集群管理,可以及大的提高开发人员的开发效率.
脉冲云使用了Nodejs做为开发语言,前端页面使用了react技术。B/S项目一般都离不开异步操作,脉冲云也是,该项目中使用了大量的async函数,async应该是目前nodejs里最简单直白的异步方案了,async函数实际上就是generator函数的语法糖,省掉了callback的回调地狱,generator的yield next,promise的 .then .catch,使代码看起来更像是同步流程方案,更扁平化。
下面看个例子:
这里我们要实现一个暂停功能,输入N毫秒,则停顿N毫秒后才继续往下执行。
// 这里是一个功能函数 也可以是其他比较耗时的操作。
var sleep = function (time) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
resolve();
}, time);
})};
var start = async function () {
// 在这里使用起来就像同步代码那样直观
console.log('start');