什么时候使用回调?

use*_*425 3 node.js

我不太明白node.js中回调的使用.我明白,如果你有类似的东西

result = db.execute(query);
doSomething(result);
Run Code Online (Sandbox Code Playgroud)

你应该把doSomething作为回调因为doSomething会在结果准备好之前执行.这是有道理的,因为db操作可能很昂贵.

现在让我说我有类似的东西

result = calculate(x,y)
doSomething(result)
Run Code Online (Sandbox Code Playgroud)

如果计算不贵(即没有从数据库或I/O读取),我还应该使用回调吗?如何在下一行执行之前或之后判断我的函数是否完成?

谢谢

Joh*_*yHK 9

简而言之,如果函数调用异步函数(例如调用I/O操作或数据库调用),则函数需要接受回调参数,以便可以将这些调用的结果提供给函数的调用者.如果您的函数只是进行同步调用,那么您的函数也是同步的,您不需要回调参数(如第二个示例所示).