javascript - Java Script 函数的顺序执行
问题描述
我无法理解掌握在 JavaScript 中顺序运行函数的过程。我在 stackoverflow 上阅读了很多关于这个主题的帖子,但它们并没有启发我。让我们假设我们有两个函数 fastFunction() 和 slowFunction()。当我一个接一个地运行它们时,其他 JavaScript 不会按顺序运行它们。
function fastFunction() {
console.log('fast function!');
}
function slowFunction() {
setTimeout(() => {console.log('slowFunction!')}, 1000);
}
slowFunction();
fastFunction();
我尝试使用回调、promise 和 async/await 语法(参见下一个示例),但我无法让 JavaScript 按顺序运行这些函数。老实说,我仍然想知道为什么这样一个基本问题在 JavaScript 中很难解决:D!
function fastFunction() {
console.log('fast function!');
}
async function slowFunction() {
let promise = new Promise((resolve, reject) => {
setTimeout(() => {console.log('slowFunction!')}, 1000)});
let result = await promise;
}
slowFunction().then(fastFunction())
如果有人能解释我做错了什么,我会很高兴。
编辑:建议通过 fastFunction() 作为回调(不确定这是否是评论所建议的)后,并没有解决问题。
function fastFunction() {
console.log('fast function!');
}
function slowFunction(callback) {
setTimeout(() => {
console.log('slowFunction!');
callback();
}, 10000);
}
slowFunction(fastFunction);
解决方案
推荐阅读
- pandas - 在 Azure 函数上使用 Pandas 库
- javascript - 从 node.js 的数据库中获取更多字段。现在只返回 id
- php - 如何在全文搜索中处理多个搜索条件和优先级
- python - 来自概率分布函数的累积分布函数
- flutter - 如何在 Dart 中解析 ICalendar 格式?
- reactjs - 如何在构造函数的 this.state 中使用 this.state?
- java - java.io.UncheckedIOException: java.nio.charset.MalformedInputException: 输入长度 = 1
- azure-devops - Azure DevOps - 如何使用新的汇总列
- c# - 将单元格值格式化为带逗号的数字
- laravel - 如何将 laravel、vuejs 最新版本降级为旧版本,如 5.5、5.6、2