异步编程
同步API与异步API
同步API:上一个事件执行完毕后一个事件才开始执行,在方法内部直接返回结果。
异步API:典型的异步API就是定时器,想要返回异步的结果,需要用回调函数返回结果。
两种区别在于获取==返回值==。
Promise
回调地狱:嵌套很深的回调函数
promise对象:处理异步操作回调地狱的解决方案;在创建时需要传递一个回调函数,函数内部有两个参数:一个是用于返回正确的结果(用.then处理正确结果),第二个用于返回错误的结果(用.catch处理错误结果)。(new Promise((resolve,reject)=>{}).then().catch())
异步函数 async
定义函数时用anync 放到函数前面,表示定义了一个异步函数。异步结果用await(异步等待)获取
Promise.all().then(r=>{console.log(r)})用于将异步操作,按顺序接收。(这里的r是一个数组,是由多个Promise对象返回的结果组成的数组)
如果出现错误的代码,操作如下:
const fs=require('fs')
function myRead(path){
fs.readFile(path,(err,data)=>{
if(!err){
console.log(data.toString())
}else{
throw new Errow('路径错误')
}
})
}
myRead('./data/file/street.txt')
==throw new Errow==提示有错误!