如何将回调函数发送回主函数

我有这个小提琴http://jsfiddle.net/jdsans/38GFS/我试图锻炼,但我无法将回调函数的返回发送到主函数。 回调函数包含我想要的结束返回值,但它不返回。

当我使用document.write()函数打印返回值时,我得到了我想要的确切值,但正如我之前所说,它不会被返回。

任何人都可以用这个小提琴来向我展示一个有效的例子。 我在小提琴中添加了更多细节作为评论,以便您在理解我时没有任何问题。

看起来你正试图让异步回调返回一个值(到“同步”函数调用)。 这就像试图在干地上船长船。 范式不合适。

“返回值”的概念仅存在于同步模型中。 在一个函数调用另一个函数的情况下,可以操纵和返回值。 但是您想要返回的值存在于函数回调中。 这意味着整个执行线程将在回调函数之前执行,包括保存返回值的部分。

你需要异步思考。 不返回值,使用它们调用执行必要工作的其他函数。

我会试着说明一下。 假设我有代码:

  1. 做一点事
  2. 使用返回值的回调调用异步函数
  3. 使用返回值在屏幕上打印

异步的想法是1-3在调用回调之前执行。 这就是为什么它被称为回调 !! 因此3将在我们获得值之前执行。 这没有意义。 相反,您需要更改要执行的代码:

  1. 做一点事
  2. 使用一个使用值并从上面执行3的回调调用asynch函数。