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

时间:2019-03-23 07:57:46

标签: javascript node.js

我正在尝试实现与您通过核心fs模块获得的方法类似的方法,其中默认情况下您具有Async方法,并且在需要时具有Sync方法,例如fs.readDir()fs.readDirSync(); < / p>

我有一个名为fetchUrls的方法,该方法从URL列表中获取文件并返回Promise。我想添加另一个名为fetchUrlsSync的方法,该方法调用fetchUrls并阻塞线程,直到承诺被解决为止。该怎么办?

示例代码:

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

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

这两个函数是类上的方法。

1 个答案:

答案 0 :(得分:2)

这不可能直接在node.js中实现。这也违反了节点中将异步执行所有IO的通用模型。

不过,可以使用编译后的Node.js扩展名来实现此功能,称为http-sync