gpt4 book ai didi

javascript - Node 请求库 - Promise 重构

转载 作者:行者123 更新时间:2023-12-03 05:13:13 28 4
gpt4 key购买 nike

我正在使用 Node 请求库,可以在以下链接中找到该库

https://github.com/request/request

我有许多如下所示的函数

function doRequest() {

return new Promise(function(resolve,reject) {

request('some-url', function(error,response,body) {

if (!error && response.statusCode === 200) {
resolve(body)
}
});

});

}

然后我像这样调用这些函数

doRequest()
.then(function(response){
console.log(response);
})

我的问题是,有没有一种方法可以编写我的 doRequest 函数而无需创建新的 Promise?我觉得它看起来很尴尬,可能是一种反模式?就像人们在 AngularJS 中经常看到的那样使用

$q.defer() 

当进行 http 调用时,当 http 调用已经返回一个 promise 时。

任何建议都会很棒。

最佳答案

如果您想根据 request() 方法的结果手动做出 Promise,那么这是正确的方法(尽管 reject() 调用错误时也是必需的)。

但是请求库已经 appears to support Bluebird Promise 库的 Promisify 函数,它可以自动将这些函数包装成返回 Promises 的函数。

关于javascript - Node 请求库 - Promise 重构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41715940/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com