Appearance
并发问题afterFn
本节目标:理解“并发问题afterFn”的核心思路,并能把它用于实际开发或面试表达。
afterFn用处是:
- 接受一个执行次数和回调函数作为参数;
- 返回一个函数;
- 这个函数由于闭包的原因,能访问到执行次数和回调函数这两个参数;
- 这个返回的函数在执行指定的次数后,触发我们指定的回调函数;
const fs =
require('fs');
functionafter(times,callback){let arr =
[];//目前不关心顺序 return
(data)=\> {
arr.push(data); `if`
(--times==
0){//多个请求并发,需要靠计数器来实现
callback(arr); `}`
}
}
letout =
after(2,(arr)=\> {
console.log(arr)
});
fs.readFile('./age.txt','UTF8',function
(err,data){
out(data);
});
fs.readFile('./b.txt','UTF8',function
(err,data){
out(data)
})