ECMAScript6 async
来源:互联网 发布:定性数据量化 编辑:程序博客网 时间:2024/05/17 22:18
//async(异步的) 函数
//es7里提供的
//async 使得异步操作变得更加方便,它是generator函数的语法糖
var fs = require('fs');
function readFile(name){
return new Promise(function(resolve,reject){
fs.readFile(name,function(err,body){
if(err){
reject(err)
}
resolve(body);
})
})
}
//g 函数写法
function* generator(){
var f1=yield readFile('package.json');
console.log(f1.toString())
var f2=yield readFile('a.js');
console.log(f2.toString())
}
//async写法
//1 把*换成了async
//2 yield 换成了await
async function ac1(){
var f1=await readFile('package.json');
console.log(f1.toString())
var f2=await readFile('a.js');
console.log(f2.toString())
return f2;
}
//async的改进
//1 内置执行器,generator的执行需要有执行器,所以才有了co
//而async自带了执行器。它的执行和普通函数一样
var result=ac1();
//调用了ac1后它就会立即执行,输出最后结果
//2更好的适用性,await(等侯)后可以是Promise 和原始 类型的值
//数值,字符串,等。但这时等同于同步执行了。
//3 async 函数返回的是Promise对象,
//async函数完全可以看作多个异步操作,包装成的一个Promise对象,
//而await 命令就是内部then命令的语法糖
//正常情况下,await命令后面是一个Promise对象,否则会被转成Promise。
//async函数的实现就是将generator 函数和自动执行器,包装在一个函数里。
//then参数还可以获取return 的值
result.then(function(res){
console.log('----------------------------------ok')
console.log(res.toString());
})
//async返回promise所以可以用then
//当执行时,一旦遇到await 就会先返回,等到异步完成
//再接着执行后面语句。
//es7里提供的
//async 使得异步操作变得更加方便,它是generator函数的语法糖
var fs = require('fs');
function readFile(name){
return new Promise(function(resolve,reject){
fs.readFile(name,function(err,body){
if(err){
reject(err)
}
resolve(body);
})
})
}
//g 函数写法
function* generator(){
var f1=yield readFile('package.json');
console.log(f1.toString())
var f2=yield readFile('a.js');
console.log(f2.toString())
}
//async写法
//1 把*换成了async
//2 yield 换成了await
async function ac1(){
var f1=await readFile('package.json');
console.log(f1.toString())
var f2=await readFile('a.js');
console.log(f2.toString())
return f2;
}
//async的改进
//1 内置执行器,generator的执行需要有执行器,所以才有了co
//而async自带了执行器。它的执行和普通函数一样
var result=ac1();
//调用了ac1后它就会立即执行,输出最后结果
//2更好的适用性,await(等侯)后可以是Promise 和原始 类型的值
//数值,字符串,等。但这时等同于同步执行了。
//3 async 函数返回的是Promise对象,
//async函数完全可以看作多个异步操作,包装成的一个Promise对象,
//而await 命令就是内部then命令的语法糖
//正常情况下,await命令后面是一个Promise对象,否则会被转成Promise。
//async函数的实现就是将generator 函数和自动执行器,包装在一个函数里。
//then参数还可以获取return 的值
result.then(function(res){
console.log('----------------------------------ok')
console.log(res.toString());
})
//async返回promise所以可以用then
//当执行时,一旦遇到await 就会先返回,等到异步完成
//再接着执行后面语句。
//await 后的promise可能返回reject 所以最好把await 包在try内
//编译需要用 traceur --experimental async2.js
//async 使得异步操作变得更加方便,它是generator函数的语法糖
0 0
- ECMAScript6 async
- ECMAScript6标准异步操作和Async函数
- ECMAScript6笔记:异步操作和Async函数
- ECMAScript6
- ECMAScript6
- ECMAScript6
- ECMAScript6
- ECMAScript6
- ECMAScript6
- ECMAScript6
- ECMAScript6
- ECMAScript6笔记:ECMAScript6简介
- Async
- async
- Async
- async
- async
- async
- bzoj 2708: [Violet 1]木偶
- surfaceview组件的surfaceCreated()不被调用的解决方案
- 如何配置国际化资源文件
- 懒加载——网页图片的加载技术
- BitMap位图的设计
- ECMAScript6 async
- HDU 2066 一个人的旅行(Dijkstra)
- 无网或断网提示,自定义界面(UIView分类,使用方便)
- 关于MediaPlayer使用的一些积累
- IntelliJ Idea 常用快捷键 (自己亲测有效推荐)
- TIOBE 2016年5月编程语言排行榜:Ruby排名创历史新高
- haproxy的 nosvr
- 梦幻仙缘主角以及技能介绍
- Servlet的debug