遇到的问题是这样的,有一个函数 func_a
:
function func_a() {
if(something){
func_b();
} else {
func_c();
}
}
在 func_a
里面可能执行 func_b
, 也可能执行 func_c
,
而 func_b
和 func_c
在执行结束后还需要执行一些共同的操作,这里就需要对两个函数进行回调
现在能实现需求的方法就是
function func_b(callback) {
//do something
callback();
}
function func_a() {
if(something){
func_b(func_d);
} else {
func_c(func_d);
}
}
这样的话需要在 func_a
中调用的函数,都需要接受 callback
参数,最后再去调用 callback()
,而实际问题中,func_b
这些函数是在外部实现,然后作为参数传入 func_a
的,所以每定义一个都需要加上这两行, 感觉有些冗余。
func_b
这类函数既可能执行的是 console.log()
这些同步操作,也可能执行的是 fetch(api).then().catch()
这样的异步操作。
不知道有没有什么方法使 func_b
不需要接受外部参数,完全在 func_a
内部实现回调,保证在 func_b
执行完成之后去执行某些操作。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.