【问题标题】:Use value inside an [Object Promise]在 [Object Promise] 中使用值
【发布时间】:2019-01-03 13:13:07
【问题描述】:

我在尝试使用调用 API 时得到的值时遇到问题。

这是我的打字稿代码:

 private async getPersonName() {
            let fullName = await Api.GetName('Data($select=FullName)', `PersonId  eq ${currentPersonId}`);
            return fullName.value[0].Data.FullName;
        }

然后,我只需使用 Jquery 将其附加到 DOM。

$("#myId").text(/*getPersonName() value*/);

当我尝试附加它时,它会在 DOM 中显示 [object Promise]。我不太确定如何正确使用这个值。

问候。

【问题讨论】:

  • 看起来你的 Api.GetName 函数返回了一个承诺对象
  • 是的,我也是这么想的。也许这里可以使用 Promise.Resolve?
  • 我建议您阅读promises(或this blog post),以便您了解这个概念,然后它应该很容易解决;)
  • 好的。谢谢@摩羯座

标签: javascript jquery typescript


【解决方案1】:

由于getPersonName() 被声明为async,您可能应该对它进行await 调用。

var value = await getPersonName();
$("#myId").text(value);

甚至

$("#myId").text(await getPersonName());

【讨论】:

    【解决方案2】:

    试试这个$("#myId").text(await getPersonName());
    或者这个:

    private async getPersonName() {
       let fullName = await Api.GetName('Data($select=FullName)', `PersonId  eq ${currentPersonId}`);
       return fullName.value[0].Data.FullName;
    }
    

    ...

    getPersonName().then((value) => {
        $("#myId").text(value);
    })
    

    【讨论】:

    • 您是否更改了private async getPersonName() 中的某些内容?
    • @Bergi,没有任何改变
    猜你喜欢
    • 2021-04-24
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 2022-08-22
    • 1970-01-01
    • 2021-09-14
    • 2021-08-25
    • 2018-08-26
    相关资源
    最近更新 更多