callback 为什么没有被调用?

2019-03-22 10:57:37 +08:00
 victorhe0601
const timeFuncRuntime = funcParameter => {

console.log('parent function called');
}

const callbacks= () => console.log(' callback called');


timeFuncRuntime(callbacks);


我在 chrome 里边测试了,callbacks 函数没有被调用,为什么,应该被调用的啊。
3966 次点击
所在节点    JavaScript
14 条回复
myl0204
2019-03-22 11:00:36 +08:00
```
const timeFuncRuntime = funcParameter => {
funcParameter()
console.log('parent function called');
}
```
geelaw
2019-03-22 11:00:41 +08:00
那你再读一读代码看看?
kzfile
2019-03-22 11:01:47 +08:00
在这种帖子我还可以找找自信
Joyboo
2019-03-22 11:07:37 +08:00
因为你本来就没有调用。。。
1to3
2019-03-22 11:22:22 +08:00
callback 不会自动调用. 它作为函数的参数传入函数内部. 需要你像调用其他函数一样, 显式调用它. 如 1 楼那样.
FakeLeung
2019-03-22 11:23:40 +08:00
亲,这边建议您再仔细看看代码。
victorhe0601
2019-03-22 11:26:14 +08:00
参见这个例子: https://stackoverflow.com/questions/824234/what-is-a-callback-function

这个代码里边也没有显式调用,而且还有很多人都是这么解释的,参见: http://javascriptissexy.com/understand-javascript-callback-functions-and-use-them/
https://codeburst.io/javascript-what-the-heck-is-a-callback-aba4da2deced

因为看了上面的这些文档,我以为 callbacks 的执行逻辑就是这样:在 parent 函数执行完成之后,自动执行,不用显式调用?
victorhe0601
2019-03-22 11:32:25 +08:00
我知道了,应该是 stackoverflow 这里边的例子不是针对 JS 的。只是一个范例。谢谢大家。所以:无论如何怎样传入,都需要显式调用才行。
1to3
2019-03-22 11:39:09 +08:00
@victorhe0601 JavaScript 需要你显式调用.
yushenglin
2019-03-22 12:01:06 +08:00
你第一个函数里面都没有调用,你传一个函数进去怎么可能调,函数体里面需要调用啊
will0404
2019-03-22 12:21:23 +08:00
不懂就问,前面说 JS 需要“显式调用”,难道别的语言有“隐式调用”?
shintendo
2019-03-22 13:10:39 +08:00
我以为 callbacks 的执行逻辑就是这样:在 parent 函数执行完成之后,自动执行,不用显式调用?
--------------
要是这样,那回调的意义在哪里
parent(callback);为什么不写成 parent();callback();
回调是你不知道什么时候要执行,但是 parent 函数知道,所以你把你要做的事情装在 callback 里面交给 parent,让它来决定什么时候执行
victorhe0601
2019-03-22 13:22:04 +08:00
谢谢各路神仙的指点。
victorhe0601
2019-03-22 13:24:04 +08:00
尤其感谢 @shintendo 和 @1to3

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/547317

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX