javascript - 如何创建异步方法的同步版本?

标签 javascript node.js

我正在尝试实现类似于您使用核心 fs 模块获得的方法,在该模块中,默认情况下您具有 Async 方法,如果需要,则具有 Sync 方法,例如 fs.readDir()fs.readDirSync();

我有一个名为 fetchUrls 的方法,它从 url 列表中获取文件并返回一个 promise 。我想添加另一个名为 fetchUrlsSync 的方法,它调用 fetchUrls 并阻塞线程,直到 promise 得到解决。怎么办?

示例代码:

fetchUrls(startDate, endDate) {
    return new Promise((resolve, reject)=> {
        // some async work...
    })
}

fetchUrlsSync() {
 // call fetchUrls and block until resolved
}

这两个函数是类的方法。

最佳答案

这在 node.js 中是不可能的。这也违背了node中的通用模型,即异步执行所有IO。

然而,可以使用已编译的 Node.js 扩展来实现这个称为 http-sync 的功能。 .

关于javascript - 如何创建异步方法的同步版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55311807/

相关文章:

javascript - 如何通过同一个流发送不同编码的数据?

javascript - 在 Javascript 函数中添加变量

javascript - 如何使用 javascript 根据单元格的值更改单元格的背景颜色?

node.js - 处理Mongodb连接的正确方法是什么?

javascript - 为什么我的超时重试得到未定义的结果

php - 用php连接 Node

node.js - PostgreSQL 选择数组在数组中的数据

javascript - 使用 Ng-Repeat 递归显示数据

javascript - 使用node.js递归无限循环

javascript - 使用 D3 创建一个表,其中两行是兄弟