在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 可以让您更轻松地对异步操作进行排序和链接,从而简化异步函数的使用,但它们仍然使用回调来处理结果。
假设在第三方 javascript(不是 NodeJS)模块中有这样一个函数:
Api.IoAsync(parameter, function(err, message) {
...
})
我想把它转换成这样的同步版本:
Api.IoSync(parameter)
它会阻塞直到完成,它的return值是message
如果成功,否则err
。
有没有通用且简单的方法来做到这一点?
您不能使异步函数在 Javascript 中同步运行。这已经被问过很多次了。它不能在 Javascript 中完成。
如果底层函数是异步的,那么您将必须编写异步响应回调并以这种方式使用异步函数的结果。没有解决方法。
了解如何使用异步回调进行编码并继续前进。 Promise 可以让您更轻松地对异步操作进行排序和链接,从而简化异步函数的使用,但它们仍然使用回调来处理结果。