JavaScript 实现高阶函数 combinedFetcher
问题描述
A fetcher
is
function fetcher(arg, cb){
let res = fetch(arg);
cb(res);
}
Write a higher-order function combinedFetcher
, using callback to get all the fetched data.
const fetchFruitsAndDrinks = combinedFetcher("fruits", "drinks");
fetchFruitsAndDrinks(console.log);
参考实现
这其实是一道互联网大厂的面试真题,笔者也碰到过。
function fetch(arg) {
return `response with: ${arg}`;
}
function fetcher(arg, cb){
let res = fetch(arg);
cb(res);
}
function combinedFetcher(...args) {
const len = args.length;
let cnt = 0;
const res = [];
function innerCB(r, cb) {
cnt++;
res.push(r)
if(cnt === len) cb(res);
}
return cb => args.forEach(arg => fetcher(arg, r => innerCB(r, cb)));
}
const fetchFruitsAndDrinks = combinedFetcher("fruits", "drinks");
fetchFruitsAndDrinks(console.log)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论