async和await 用法

async函数是generator函数的语法糖,但对generator进行了改进,其中最方便的一点就是async返回一个promise对象,在实际项目中,await后面要跟一个promise对象,

而async函数又返回一个promise对象,所以可以很方便地划分模块,个人认为async是目前回调函数最好的解决办法

普通函数转换为promise:

var changeToPromise = function(){

var argument = arguments , _this = this

return new Promise(function(resolve,reject){

var fun = Array.prototype.shift.call(argument)

Array.prototype.push.call(argument,function(err,data){

if(err){

reject(err)

}else{

var d = data || undefined

resolve(d)

}

})

fun.apply(_this,argument)

})

}

在用的时候可以通过call来指定外部的this(因为需要转换的方法内部调用了this)

var parent = async function(){

var obj = {

someProperty,

someFunction      // 某个异步方法,返回一个值data

}

var re = await changeToPromise.call(obj,obj.someFunction)

}

一般情况可以直接使用 changeToPromise,无需call

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容