函数同步和可观察

Function synchronization and observable

我有一个 Typescript 函数,可将元素列表转换为地图:地图。

在这个转换过程中,我需要在返回Map之前修改Map中的一些东西。 要获取信息,我必须请求一个服务器,所以我有一个 http.GET request/subscription 来获取值。

我正在使用 GET 之后的值,而服务器还没有响应,所以我返回的 Map 的值是错误的。 (来晚了,但为时已晚)。

然后我使用这张地图,其中我没有正确的值

我需要一种机制来同步我的函数与我的 GET 请求的结果,然后在我的代码中稍后处理 Map(在返回函数之后)。

我该怎么做,有人告诉我 Observable 可能是解决方案,但我不知道该怎么做。

我需要一些帮助 ;-)。

此致, 查尔斯.

How can I do this, I have been told that the Observable may be the solution, but I don't know how to do it.

对于异步事物,您需要某种形式的 continuation 机制。流行的选择是:

回调

原生支持,例如setTimeout 使用它

// Some code 

setTimeout(() => {
  // Some more code that executes after 1 second
}, 1000)

承诺

原生支持(现在)。一些关于 TypeScript 的文档以及它们如何提供帮助 https://basarat.gitbooks.io/typescript/docs/promise.html

观察值

如果您的框架 http returns observables 您将需要使用它们。

总结

你不能停止 entire JavaScript 的执行,因为 JavaScript 的 JS 上下文是单线程的。你需要继续工作。检查您正在使用的库(例如 angular / axios)或本机 api (fetch / XHR) 的文档。