题目描述
两个异步的函数,要求写一个函数asyncOneByOne(arr) 能够顺序执行输入的参数
asyncOneByOne([one, two])
// 输出
//first
//second
function one(callback) {
setTimeout(function () {
console.log('first');
callback && callback();
}, 200);
}
function two(callback) {
setTimeout(function () {
console.log('second');
callback && callback();
}, 0);
}
题目来源及自己的思路
一道笔试题,一开始还以为要用到promise什么的,但是one() two() 不让更改了
然后发现其实只要
one(two(one(two)))
这样执行就可以(看了回调函数那一章)
你期待的结果是什么?实际看到的错误信息又是什么?
这样问题就变成了输入一个数组[one, two, one, two], 如何变成one(two(one(two)))这样并且执行的问题了,但是这里反而糊掉了,请教各位应该如何处理.