假设在第三方javascript(非NodeJS)模块中有这样的函数:
Api.IoAsync(parameter, function(err, message) {
...
})
我想把它转换成这样的同步版本:
Api.IoSync(parameter)
在完成之前它将被阻止,如果成功则返回值为message
,否则为err
。
有没有通用且简单的方法来做到这一点?
答案 0 :(得分:1)
您无法在Javascript中使异步函数同步运行。这已被问过很多次了。它无法在Javascript中完成。
如果底层函数是异步的,那么您将不得不编写异步响应回调代码并以这种方式使用异步函数的结果。没有解决方法。
了解如何使用异步回调进行编码并继续前进。 Promise可以通过允许您更轻松地对异步操作进行排序和链接来简化异步函数的使用,但它们仍然使用回调来处理结果。