【问题标题】:In Javascript, generally, how to make asynchronous function synchronous?在Javascript中,一般来说,如何使异步函数同步?
【发布时间】:2015-05-18 06:03:58
【问题描述】:

假设第三方javascript(不是NodeJS)模块中有这样的功能:

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

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

Api.IoSync(parameter)

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

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

【问题讨论】:

    标签: javascript asynchronous io request sync


    【解决方案1】:

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

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

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

    【讨论】:

    • 承诺是美丽的,顺便说一句。不完美,无法捕捉到特定异常有点奇怪,但是......它们仍然很棒。
    猜你喜欢
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 2021-08-28
    • 2017-06-18
    相关资源
    最近更新 更多