gpt4 book ai didi

javascript - 如何定义异步函数?

转载 作者:行者123 更新时间:2023-11-30 11:02:29 25 4
gpt4 key购买 nike

如何定义异步调用的函数?

async function getPosts() {
for (i = 0; i < 1000000000; i++){}
console.log("loop done.");
}

console.log("start");
getPosts();
console.log("end");

结果是:
开始
循环完成。
结束


期待:
开始
结束
循环完成

我希望如此,因为函数“getPosts”被声明为“async”。所以我们不会等到函数完成。

我必须如何调整我的代码才能获得预期的结果?

最佳答案

异步函数可以是调用另一个返回 Promise 的函数的函数。在 Promise 中,您可以放置​​一个 setTimeout 而不是 for 循环,最后使用 asyncCall 进行调用:

function getPosts() {
return new Promise(resolve => {
setTimeout(() => {
resolve('done.');
}, 2000);
});
}


async function asyncCall() {
var result = await getPosts();
console.log(result);
}

console.log("start");
asyncCall();
console.log("end");

关于javascript - 如何定义异步函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57094827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com