当前位置: 首页 > 知识库问答 >
问题:

将Promission从超级代理响应转换为Typescript中的字符串

西门振
2023-03-14

我有一个这样的代码,我正在使用flickr-sdk,它使用superagent来进行所有调用。

常量superagent=require('superagent');var flickr=require('flickr-sdk');

let userId: string = '123'
getFavList: string = async() => {
let favResponse: Response = await flickr.favorites.getList({
    user_id: userId,
});
return favResponse.text;

}

现在我这样叫它

let list: string = await getList();

Typescript给出此错误()=>Promise “不能分配给类型”string“

有没有办法把承诺转换成字符串。然后返回该解析值。

编辑:已更新代码以返回favResponse

共有1个答案

凤晨朗
2023-03-14

您正在将GetFavList分配给类型String:

getFavList: string = async () => ...

GetFavList不是一个字符串,它是一个向字符串返回承诺解析的函数。

您可以这样做:

getFavList = async (): Promise<string> => {
let favResponse: Response = await flickr.favorites.getList({
    user_id: userId,
});

这取决于您的ts-config,但您可以让类型推断为您处理所有事务,而完全避免显式类型(这是我个人推荐的)。

 类似资料: