使用promise可以很优雅的封装一个异步函数,使其按指定顺序执行:

// 异步读取文件操作
const fs = require("fs");
function promiseReadFile(url) {return new Promise(function (resolve, reject) {fs.readFile(url, function(err, data) {if(err) {reject(err);} else {resolve(data);}})})
}

使用封装好的promiseReadFile()函数,按顺序读取a.txt, b.txt, c.txt,并返回其内容

promiseReadFile("./a.txt").then(function(data) {console.log(data);return promiseReadFile("./b.txt");}).then(function(data) {console.log(data);return promiseReadFile("./c.txt");}).then(function(data) {console.log(data);})

javascript --- 异步按顺序执行相关推荐

  1. ES6(三)——回调地狱和promise异步任务顺序执行(传参、错误处理)

    文章目录 方法一.回调函数(回调地狱) 方法二:promise 2.1异步任务传参(单个) 2.2异步任务传参(多个) 2.3 错误处理 2.4 Promiss对象三大状态: (学名) 2.5 Pro ...

  2. JS定时器同步异步问题(顺序执行)

    定时器同步问题 场景 1.异步代码 代码如下(示例): console.log('1')setTimeout(() => {console.log('2')}, 1500);console.lo ...

  3. 未定义函数或变量_变量提升:JavaScript是顺序执行,为什么变量在定义之前执行不会报错而是报Underfined...

    showName() console.log(myname) var myname = 'hhh' function showName() {console.log('函数showName被执行'); ...

  4. 前端知识点回顾之重点篇——JavaScript异步机制

    JavaScript异步机制 来源:https://www.cnblogs.com/zhaodongyu/p/3922961.html JavaScript是单线程异步执行的,单线程意味着代码在任务队 ...

  5. html js异步绑定,JavaScript异步机制介绍

    异步就是代码执行的顺序,并不是按照从上到下的顺序一次性执行,而是在不同的时间段执行,一部分代码在"未来执行".本文就来为大家介绍一下JavaScript中的异步机制. 单线程异步执 ...

  6. JavaScript 异步 实现异步的五种实现方法

    JavaScript实现异步的五种实现方法 文章目录 JavaScript实现异步的五种实现方法 前言 一.同步和异步是什么? 1.同步任务: 2.异步任务: 二.异步方法有哪些(5种): 1.web ...

  7. JavaScript异步执行流程

    JavaScript异步 什么是异步 ​ 相对于同步的概念,同步代码按照代码顺序依次执行,异步代码则不会按照代码顺序执行,异步代码会从主线成中发送一个子线程来完成任务 异步代码的执行过程 ​ 主线程的 ...

  8. 【青少年编程】【答疑】控制Scratch异步代码的执行顺序

    问题 几天前,我写了一篇图文 对「等待(0)秒」的理解,发现可以利用「等待(0)秒」这个积木块来解决Scratch中异步代码的执行顺序问题,即点击绿旗后可以控制多个角色中响应该事件的代码的顺序. 在这 ...

  9. JavaScript异步精讲,让你更加明白Js的执行流程!

    JavaScript异步精讲,让你更加明白Js的执行流程! 问题点 什么是单线程,和异步有什么关系 什么是 event-loop jQuery的Deferred Promise 的基本使用和原理 as ...

最新文章

  1. 2021-06-11 pytorch基本语法
  2. 为什么学Python
  3. Eclipse中Program arguments和VM arguments的说明
  4. java foreach多线程_java关键字(一)
  5. 为什么开源应该是云原生环境的首选
  6. 2019第十届蓝桥杯B组C++省赛E题迷宫--BFS(倒搜)
  7. Java序列化 3 连问,这太难了吧!
  8. freebsd mysql tmp_FreeBSD下安装MySQL与MySQLdb笔记
  9. 用户使用什么命令访问远程计算机,远程桌面连接命令是什么 怎么使用命令连接远程服务器...
  10. python 对excel的函数操作_自动化报表(3)
  11. 【HTML5新特性】
  12. 电脑重启后自带键盘失灵而外接键盘有用的一种情况
  13. # 驱动安全编码排查指南
  14. 你到底可以用Python做什么?以下是Python的3个主要应用程序。
  15. 从网上订火车票的网站12306.cn谈谈网站性能技术
  16. 网络管理员面试技术试题收集
  17. mini车f和r的区别_f800r(宝马f800r的f和r是什么意思?)
  18. upc 5212 Coins I
  19. 关于MPU9250的六轴DMP和九轴MPL
  20. 蒙古语西里尔文键盘布局

热门文章

  1. android 视频开发sd卡,Android开发之SD卡文件操作分析
  2. python的gui库_tkinter——python的GUI标准库
  3. lan8720a自协商启动_紫金矿业2020届校招海外9站全面启动(面向全专业)
  4. cmd长ping记录日志和时间_四个网络命令ping、arp、tracert、route的详细用法
  5. 微信电脑客户端登陆_电脑端的微信只能开一个?简单操作就能随意开
  6. Games101现代图形学入门Lecture 3: Transformation知识点总结
  7. 【caffe-Windows】关于LSTM的使用-coco数据集
  8. 给 Flutter 界面切换来点特效
  9. 自写图片遮罩层放大功能jquery插件源代码,photobox.js 1.0版,不兼容IE6
  10. 在ubuntu中安装minicom时出现device /dev/tty8 is locked解决办法