var arr = [()=>{},()=>{}];
function Fn(arr){
//让数组中的函数依次执行。
}
Fn(arr)
var arr = [()=>{},()=>{}];
function Fn(arr){
//让数组中的函数依次执行。
var i;
for(i=0;i<arr.length;i++){
arr[i]();
//也可以这样 arr[i].call(null);
//或者 arr[i].apply(null);
}
}
Fn(arr)
这个是无返回值类型的,只保证函数执行,并不保证执行后返回值的处理,如果需要返回值,用map
处理
// define
const __function_arr_ = [() => console.log('function one'), () => console.log('function two')]
// define
function Fn (__function_arr_) {
__function_arr_.forEach(fn => fn())
}
// call
Fn(__function_arr_)
这个是带返回结果的
const __function_arr_ = [() => 'one', () => 'two']
function Fn(__function_arr_) {
return __function_arr_.map(fn => fn())
}
console.log(Fn(__function_arr_))
谢谢大家,其实是在考察一种设计模式 叫中间件模式, 但是我用async 写的所以有点不满意, 不过还是谢谢大家的回答。
我给出的答案是这样的:
var arr = [() => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(1);
}, 1000)
})
}, () => {
console.log(2)
}];
async function Run(arr) {
let Result = await arr.splice(0, 1)[0]();
console.log(Result, 222222)
if (Result && arr.length) {
Run(arr)
}
}
Run(arr)
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
5 回答2.2k 阅读
3 回答1.7k 阅读✓ 已解决
5 回答804 阅读
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
保证在run 函数内,同步异步函数都可以按序执行