在Javascript,一般情况下,如何让异步函数同步?

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

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

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

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

Api.IoSync(parameter)

它会阻塞直到完成,它的return值是message如果成功,否则err

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

您不能使异步函数在 Javascript 中同步运行。这已经被问过很多次了。它不能在 Javascript 中完成。

如果底层函数是异步的,那么您将必须编写异步响应回调并以这种方式使用异步函数的结果。没有解决方法。

了解如何使用异步回调进行编码并继续前进。 Promise 可以让您更轻松地对异步操作进行排序和链接,从而简化异步函数的使用,但它们仍然使用回调来处理结果。