在Javascript中,一般来说,如何使异步函数同步

In Javascript, generally, how to make asynchronous function synchronous?

本文关键字:异步 函数 同步 何使 一般来说 Javascript      更新时间:2023-09-26

假设在第三方javascript(非NodeJS)模块中有这样一个函数:

Api.IoAsync(parameter, function(err, message) {
...
})

我想把它转换成这样的同步版本:

Api.IoSync(parameter)

将阻塞直到完成,如果成功则返回message,否则返回err

是否有一种通用且简单的方法来做到这一点?

在Javascript中你不能让异步函数的行为是同步的。这个问题已经问过很多次了。这在Javascript中是做不到的。

如果底层函数是异步的,那么您将不得不编写一个异步响应回调,并以这种方式使用异步函数的结果。没有别的办法。

学习如何使用异步回调进行编码并继续前进。promise可以简化异步函数的使用,因为它允许你更容易地对异步操作进行排序和链接,但是它们仍然使用回调来处理结果。