函数同步且可观察



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

在这个转换过程中,我需要在返回地图之前修改地图中的某些内容。要获取信息,我必须请求服务器,以便我有一个http。获取请求/订阅以获取值。

我在 GET 之后立即使用该值,而服务器尚未应答,因此我返回了具有错误值的 Map。(它来得晚,但为时已晚(。

然后我使用这个我没有正确值的地图

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

我怎么能做到这一点,有人告诉我可观察量可能是解决方案,但我不知道该怎么做。

我可以使用一些帮助;-(。

此致敬意查尔斯。

我怎么能做到这一点,有人告诉我可观察量可能是解决方案,但我不知道该怎么做。

对于异步的东西,你需要某种形式的延续机制。流行的选择是:

回调

本机支持,例如 setTimeout使用它

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

承诺

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

可观察量

如果你的框架http返回可观察量,你需要使用它们。

总结

你不能停止整个JavaScript的执行,因为JavaScript的JS上下文是单线程的。您需要使用延续。检查您正在使用的库(例如角度/公理(或本机 api(获取/XHR(的文档。

最新更新