JavaScript ES6 异步编程/回调函数地狱/Promise

异步

异步 简单来说就是一个任务分为多段,先执行第一段,在等待响应的时候首先执行其他的任务,等第一段的相应来了,做好准备了,就执行第二段。可见第一段与第二段的执行之间是可以插入其他任务的。
同步 就不可以插入其他任务,是连续执行的。

回调函数地狱

一般来说,回调函数作为其他函数的一个参数,等待其他函数执行完毕后,会自动调用回调函数。
当一个任务需要分多段执行(比如一次性依次读取五六个文件)时,就会出现一个回调函数内嵌套着另一个回调函数,多个异步操作形成强耦合,当一个操作需要修改时,他的上层函数和下层函数都需要跟着修改,就形成了回调地狱,让代码乱成一团。

Promise

promise是为了解决回调函数地狱而提出的,是一种新的写法,不是一种新的语法,他允许将回调函数的嵌套变更为链式调用。

例:

let readFile = require('fs-readfile-promise') // 返回一个promise对象

readFile(fileA)
.then(function (data) {
    
    
	console.log(data.toString())
})
.then(function () {
    
    
	return readFile(fileB)
})
.then(function (data) {
    
    
	console.log(data.toString())
})
.catch((err) => {
    
    
	console.log(err)
})

猜你喜欢

转载自blog.csdn.net/weixin_45543674/article/details/118616242
今日推荐