我正在尝试实现类似于您使用核心 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/