async函数

1.含义

async 函数是什么?一句话,它就是 Generator 函数的语法糖。

前文有一个 Generator 函数,依次读取两个文件。

var fs = require(‘fs‘);

var readFile = function (fileName) {
  return new Promise(function (resolve, reject) {
    fs.readFile(fileName, function(error, data) {
      if (error) reject(error);
      resolve(data);
    });
  });
};

var gen = function* () {
  var f1 = yield readFile(‘/etc/fstab‘);
  var f2 = yield readFile(‘/etc/shells‘);
  console.log(f1.toString());
  console.log(f2.toString());
};

写成async函数,就是下面这样。

var asyncReadFile = async function () {
  var f1 = await readFile(‘/etc/fstab‘);
  var f2 = await readFile(‘/etc/shells‘);
  console.log(f1.toString());
  console.log(f2.toString());
};

一比较就会发现,async函数就是将 Generator 函数的星号(*)替换成async,将yield替换成await,仅此而已。

async函数对 Generator 函数的改进,体现在以下四点。

(1)内置执行器。

(2)更好的语义

(3)更广的适用性。

(4)返回值是 Promise。

2.用法

3.语法

4.async函数的实现原理

5.与其他异步处理方法的比较

6.实例:按照顺序完成异步操作

7.异步遍历器

时间: 2024-12-11 01:06:04

async函数的相关文章

js-ES6学习笔记-async函数(3)

1.await命令后面的Promise对象,运行结果可能是rejected,所以最好把await命令放在try...catch代码块中. 2.多个await命令后面的异步操作,如果不存在继发关系,最好让它们同时触发. // 写法一 let [foo, bar] = await Promise.all([getFoo(), getBar()]); // 写法二 let fooPromise = getFoo(); let barPromise = getBar(); let foo = await

js-ES6学习笔记-async函数

1.async 函数是 Generator 函数的语法糖.前文有一个 Generator 函数,依次读取两个文件. var fs = require('fs'); var readFile = function (fileName) { return new Promise(function (resolve, reject) { fs.readFile(fileName, function(error, data) { if (error) reject(error); resolve(dat

async 函数--学习笔记一

含义: ES2017 标准引入了 async 函数,使得异步操作变得更加方便.async 函数是什么?一句话,它就是 Generator 函数的语法糖. 前文有一个 Generator 函数,依次读取两个文件. var fs = require('fs'); var readFile = function (fileName) { return new Promise(function (resolve, reject) { fs.readFile(fileName, function(erro

ECMAScript 6 学习(二)async函数

 1.什么是async函数 2.用法 2.1基本用法 3.语法 3.1返回promise对象 3.2promise状态的变化 3.3await命令 1.什么是async函数 async函数也是异步编程的解决方案. async函数是对是对generator函数进行了改进. var readFile = function (fileName) { return new Promise(function (resolve, reject) { fs.readFile(fileName, functio

ES6学习笔记(四)—— async 函数

await 是 async wait 的简写, 是 generator 函数的语法糖. async 函数的特点: async 声明一个方法是异步的,await 则等待这个异步方法执行的完成 asyncReadFile = async function () { var f1 = await readFile('/etc/fstab') var f2 = await readFile('/etc/shells') console.log(f1.toString()) console.log(f2.

C# 5.0 Async函数的提示和技巧

C# 5.0 Async函数的提示和技巧 这篇文章主要内容来自于文章C# Async Tips and Tricks Part 2 : Async Void,我本想直接翻译的,无奈由于水平有限,因此这里给的是参考原文结合自己的理解的一篇随笔. 一.创建Async函数 Async是C# 5.0中新增的关键字,通过语法糖的形式简化异步编程,它有如下三种方式: async Task<T> MyReturningMethod { return default(T); } async Task MyMe

es6的箭头函数转换为普通函数,以及将await/async函数转为普通函数

箭头函数转为普通函数: 1. 安装babel-preset-es2015  npm install babel-preset-es2015 --save-dev 2.在.babelrc文件夹中:  "presets": ["es2015"] await/async函数转为普通函数: 1. 安装babel-preset-stage-2 npm install babel-preset-stage-2  --save-dev 2.在.babelrc 文件中: "

ES6中的async函数

一.概述 async 函数是 Generator 函数的语法糖 使用Generator 函数,依次读取两个文件代码如下 var fs = require('fs'); var readFile = function (fileName) { return new Promise(function (resolve, reject) { fs.readFile(fileName, function(error, data) { if (error) return reject(error); re

async函数解析

转载请注明出处:async函数解析 async函数是基于Generator函数实现的,也就是说是Generator函数的语法糖.在之前的文章有介绍过Generator函数语法和异步应用,如果对其不了解的,可以先看看关于Generator函数的文章,这样学习async函数的难度就不会太大. 传送门: Generator语法解析 Generator函数异步应用 接下来会用一些篇幅说明一下async函数,文末会给出async函数的参考学习文章. 文章目录 含义 基本语法 错误处理 异步应用 含义 我们