在Javascript中,一般来说,如何使异步函数同步
In Javascript, generally, how to make asynchronous function synchronous?
假设在第三方javascript(非NodeJS)模块中有这样一个函数:
Api.IoAsync(parameter, function(err, message) {
...
})
我想把它转换成这样的同步版本:
Api.IoSync(parameter)
将阻塞直到完成,如果成功则返回message
,否则返回err
。
是否有一种通用且简单的方法来做到这一点?
在Javascript中你不能让异步函数的行为是同步的。这个问题已经问过很多次了。这在Javascript中是做不到的。
如果底层函数是异步的,那么您将不得不编写一个异步响应回调,并以这种方式使用异步函数的结果。没有别的办法。
学习如何使用异步回调进行编码并继续前进。promise可以简化异步函数的使用,因为它允许你更容易地对异步操作进行排序和链接,但是它们仍然使用回调来处理结果。
相关文章:
- 如何在异步函数中使用javascript对象
- Meteor:异步函数回调异常:onAfterAction
- 未调用jquery异步函数
- 使用来自不同异步函数的响应创建一个json对象
- 如何在异步函数中正确使用Promise.all()和then()
- 从异步函数返回值
- 如何按照承诺使用mocha/chai/chai测试ES7异步函数
- 如何在将Node异步函数转换为promise时使用Q库
- 如何在异步函数与Deferredjquery之间同步
- ng用异步函数模拟怪异行为
- 用mocha测试异步函数
- 用于异步函数中的循环和定时问题
- Node.js设计:多个异步函数使用作为闭包传递的函数写入数据库
- 嵌套异步函数未及时返回数据的问题
- 在异步函数中维护变量的状态
- 递归异步函数
- Bluebird promisifyAll不会创建整个异步函数集
- 递归调用异步函数
- 异步函数调用是否可以在两个同步语句之间完成
- 如何在nodejs中实现异步函数