2 回答

TA贡献1829条经验 获得超13个赞
我会使用“承诺”来等待,直到收到您的第一个请求的回复为止。一旦发生这种情况,您可以触发第二个请求(请参阅下面的链接中的“ then”)。一旦第二个请求返回结果,就可以在使用数据之前合并两个请求的响应。
如果请求B需要使用来自请求A响应的数据,则请求A应该位于链中的第一位。这样,您可以根据第一个请求的响应(例如,使用IF语句)来调整第二个请求。如果两者完全独立,则可以选择其中一个请求先行。
在此链接上有关于链接承诺的部分,该部分应与您要执行的操作有关:https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/然后
有关使用promise和'catch'处理错误的详细信息https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch

TA贡献1828条经验 获得超3个赞
尽管确实可以简化请求结构,但实际上没有必要使用promise,但是您可以轻松地嵌套请求:
request(url, function(err, response, body) {
request(url2, function(err2, response2, body2) {
// Both request data is available here
})
})
请注意,可以在此处更改回调函数中使用的变量名称
如果您有一堆可以独立运行的请求,请调查 promise.all
添加回答
举报