Promise 方法链是否具有自我意识?

Promise 方法链是否具有自我意识?,promise,superagent,Promise,Superagent,在包中,文档状态为: 可以通过调用 请求对象,然后调用.then()(或.end()或wait)发送 请求 请求 .get(“/search”) 。然后(res=>{ //res.body、res.headers、res.status }); 但是SuperAgent支持方法链接,例如 request.get(“/search”) .set('header1','value') .set('header2','value') 在发送请求之前修改请求。所以 请求对象如何知道方法链何时完成,从而

在包中,文档状态为:

可以通过调用 请求对象,然后调用.then()(或.end()或wait)发送 请求

请求
.get(“/search”)
。然后(res=>{
//res.body、res.headers、res.status
});
但是SuperAgent支持方法链接,例如

request.get(“/search”)
.set('header1','value')
.set('header2','value')
在发送请求之前修改请求。所以

请求对象如何知道方法链何时完成,从而不会过早发送? 我的理论是,
请求
对象的任何链都会返回一个可启用的对象,该对象可以是
等待
'd或
.then()
'd,当它是时,它会触发一个请求并返回一个实际的承诺


我在超级代理回购协议中四处寻找,找不到类似的东西。否则,在方法链完成之前等待发送请求将如何完成?

只要找到源代码并查看,就永远不会出错。因此,如果您查看,您将看到它在自身上调用
.end()

因此,当调用
.then()
.end()
时发送请求。在此之前,其他方法只是配置请求对象

并且,使用
await
将调用promise上的
.then()


另外,如果您在上面的源文件引用中搜索
.end
,您将看到几十个代码示例,它们都显示在链的末尾
.end()
。这是superagent的原始设计架构。然后,当承诺出现时,添加了对
.Then()
的支持,并在内部使用
.end()

是。正如您引用的文档所述,“调用
.then()
.end()
”确实会发送请求。这是否意味着
等待
也会发送请求,因为对象是
?@Jordan-是
await
实际上调用了
。然后()
,因为这是你知道承诺何时兑现的唯一方法。@Jordan
await
不是魔法,它只是。