我正在开发一个需要获取一些数据并对其进行处理的 javascript 项目,但我在 JavaScript 的异步特性方面遇到了麻烦。我想要做的是像下面这样的事情。
//The set of functions that I want to call in order
function getData() {
//gets the data
}
function parseData() {
//does some stuff with the data
}
function validate() {
//validates the data
}
//The function that orchestrates these calls
function runner() {
getData();
parseData();
validate();
}
在这里,我希望每个函数在继续下一次调用之前等待完成,因为我遇到了程序在检索数据之前尝试验证数据的情况。但是,我还希望能够从这些函数返回一个值以进行测试,所以我不能让这些函数返回一个布尔值来检查是否完成。在继续下一个调用之前,如何让 javascript 等待函数运行完成?
原文由 Nick P 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用承诺:
它们不仅易于掌握,而且从代码可读性的角度来看也很有意义。 在这里 阅读更多关于它们的信息。如果你在浏览器环境下,我推荐 这个 polyfill。