Wrapping/intercepting 内部函数中的承诺
Wrapping/intercepting a promise in an inner function
我很难找到问题的答案,可能是因为我不知道如何提问(使用什么搜索词)。我真的很难理解 promises,并且看了很多教程视频,但仍然没有得到一些基本的东西来让它点击。
在 Node 中,我正在使用请求承诺模块,当我调用 rp() 方法时,它 return 是一个承诺。我打电话
returnrp(服务);
从一个函数中。但我想做的是,在 return 将承诺返回给调用者之前,向其添加一个 .then() 处理程序,以对服务调用的结果进行一些 post 处理所以调用者仍然可以拥有自己的 then 处理程序。
我该如何做到这一点?
查看您当前的代码将有助于更好地了解您到底在哪里遇到困难。
一般来说,您可以将 promises 视为您可以链接在一起的某些未来价值的占位符。
如果我对你的问题的理解正确,你想向服务器发出请求,接收响应,对响应做一些处理,然后 return 返回给调用者。
const callService = (url) => {
// make sure to return your promise here
return rp(url)
.then((html) => {
// do something with html
return html;
});
};
现在可以这样调用了-
callService('http://www.google.com')
.then((html) => {
console.log(html);
}).catch((err) => {
// error handling
});
常见的错误是在顶层函数和后续的 then 函数中省略了 return 语句。
欢迎提供更多详细信息。
我很难找到问题的答案,可能是因为我不知道如何提问(使用什么搜索词)。我真的很难理解 promises,并且看了很多教程视频,但仍然没有得到一些基本的东西来让它点击。
在 Node 中,我正在使用请求承诺模块,当我调用 rp() 方法时,它 return 是一个承诺。我打电话 returnrp(服务); 从一个函数中。但我想做的是,在 return 将承诺返回给调用者之前,向其添加一个 .then() 处理程序,以对服务调用的结果进行一些 post 处理所以调用者仍然可以拥有自己的 then 处理程序。
我该如何做到这一点?
查看您当前的代码将有助于更好地了解您到底在哪里遇到困难。
一般来说,您可以将 promises 视为您可以链接在一起的某些未来价值的占位符。
如果我对你的问题的理解正确,你想向服务器发出请求,接收响应,对响应做一些处理,然后 return 返回给调用者。
const callService = (url) => {
// make sure to return your promise here
return rp(url)
.then((html) => {
// do something with html
return html;
});
};
现在可以这样调用了-
callService('http://www.google.com')
.then((html) => {
console.log(html);
}).catch((err) => {
// error handling
});
常见的错误是在顶层函数和后续的 then 函数中省略了 return 语句。
欢迎提供更多详细信息。