Node.js typescript请求承诺没有重载与此调用匹配
以下代码不符合我的请求承诺, 我已经尝试过清理node_模块并再次安装dependeciesNode.js typescript请求承诺没有重载与此调用匹配,node.js,typescript,request-promise,Node.js,Typescript,Request Promise,以下代码不符合我的请求承诺, 我已经尝试过清理node_模块并再次安装dependecies try { const response = await request(reqOptions) // Error Highlighting `reqOptions`; this.products = _.concat(this.products, response.products); if(response.nextPage){
try {
const response = await request(reqOptions) // Error Highlighting `reqOptions`;
this.products = _.concat(this.products, response.products);
if(response.nextPage){
return this.getProductsCatalog(response.nextPage);
} else {
return Promise.resolve(this.products);
}
} catch(err) {
logger.error(err);
return Promise.reject(err);
}
错误
没有与此调用匹配的重载。
重载第1个,共3个,'(uri:string,options?:RequestPromiseOptions,callback?:RequestCallback):RequestPromise',出现以下错误。
类型为“{headers:{'content-type':string;};}”的参数不能分配给类型为“string”的参数。
重载2/3'(uri:string,callback?:RequestCallback):RequestPromise',出现以下错误。
类型为“{headers:{'content-type':string;};}”的参数不能分配给类型为“string”的参数。
重载3个选项中的第3个,“(选项:(UriOptions和RequestPromiseOptions)|(urlpoptions和RequestPromiseOptions),回调?:RequestCallback):RequestPromise”,出现以下错误。
类型为“{headers:{'content-type':string;};}”的参数不能分配给类型为“(UriOptions&RequestPromiseOptions)|(UrlOptions&RequestPromiseOptions)”的参数。
类型“{headers:{'content-Type':string;};}”不能分配给类型“urlpoptions&RequestPromiseOptions”。
类型{headers:{'content-type':string;}中缺少属性“url”
整体功能
async getProductsCatalog(url: string): Promise<Product[]>{
if(url === null) {
this.products = [];;
return this.sendGetRequest('/v1/catalog/products',
{
pageSize: 40
}
)
.then((res) => JSON.parse(res))
.then((res) => {
const response: ProductCatalogResponse = res;
this.products = _.concat(this.products, response.products)
if(response.nextPage) {
return this.getProductsCatalog(response.nextPage);
} else {
return Promise.resolve(this.products);
}
});
} else {
let reqOptions = {
headers: {
'content-type': 'application/json'
}
};
this.visitRequest(reqOptions, 'GET', url, {pageSize: 40}, false)
try {
const response = await request(reqOptions);
this.products = _.concat(this.products, response.products);
if(response.nextPage){
return this.getProductsCatalog(response.nextPage);
} else {
return Promise.resolve(this.products);
}
} catch(err) {
logger.error(err);
return Promise.reject(err);
}
}
}
异步getProductsCatalog(url:string):承诺{
如果(url==null){
这个。产品=[];;
返回此.sendGetRequest(“/v1/catalog/products”,
{
页面大小:40
}
)
.then((res)=>JSON.parse(res))
。然后((res)=>{
常量响应:ProductCatalogResponse=res;
this.products=uu.concat(this.products,response.products)
如果(响应。下一页){
返回此.getProductsCatalog(response.nextPage);
}否则{
退货承诺.解决(本.产品);
}
});
}否则{
让选项={
标题:{
“内容类型”:“应用程序/json”
}
};
this.visitRequest(reqOptions,'GET',url,{pageSize:40},false)
试一试{
const response=等待请求(reqOptions);
this.products=uu.concat(this.products,response.products);
如果(响应。下一页){
返回此.getProductsCatalog(response.nextPage);
}否则{
退货承诺.解决(本.产品);
}
}捕捉(错误){
记录器错误(err);
退回承诺。拒绝(错误);
}
}
}
这是否不够清楚-
属性“url”在类型“{headers:{'content-type':string;”中缺失;
?您似乎应该将url指定为第一个参数或将其包含在请求选项中。这是否不够清楚-属性“url”在类型“{headers:{'content-type':string;”中缺失;
?看起来您应该将url指定为第一个参数,或者将其包含在请求选项中。