我们有一个 JavaScript 库,它位于 JavaScript 中的 2 个专有库(lib_Upper 和 lib_Lower)之间。我们的库将 lib_Lower 的返回值转换为 lib_Upper 期望的值/函数 - 即
lib_Upper -> lib_US -> lib_Lower
lib_Lower 以异步方式运行,但不返回承诺或其他延迟对象。同样,lib_Upper 的行为就好像一切都是同步的。
因此,我们需要转换为异步来同步调用。
调用过程是这样的:
lib_Upper calls lib_US.fn()
lib_US calls lib_lower.fn2()
lib_Lower sends the request over a WebSocket and returns
在这一点上,一切都回到了 lib_Upper。
一段时间后,响应从 WebSocket 返回:
lib_Lower calls lib_US.callbackFn()
lib_US library needs to return the data from lib_lower to lib_Upper
此时我们被卡住了,因为我们已经回到了 lib_Upper。
作为 JavaScript 的新手,在回调发生之前“暂停”来自 lib_Upper 的调用看起来非常困难。
我们如何在这个链中获得一个异步事件,以便 lib_Upper 只返回回调中的数据?
谢谢。