javascript - 为什么我在 javascript 中获取用户名时遇到问题?

标签 javascript

我正在开发 Javascript、HTML 和 CSS 项目。我想要的是使用其 Id 获取用户的名称。我使用 fetch 来做到这一点,但我遇到了一些问题。

function getUserName(userId) {
  let userTemp = window.API_HOST + '/users/' + userId;
  return fetch(userTemp, {
    headers: { authorization: localStorage.access_token },
  })
    .then(response => response.json())
    .then(response => {
      console.log('El nombre es: ' + response.name);
      return response.name;
    });
}

这里的问题是 response.name 是一个 promise 对象而不是实际名称。我尝试使用 stringify 但它没有用。有什么建议吗?

编辑: 我需要在这样的地方调用该函数:

function showOffer(newOffer) {
  if (newOffer.user_id === JSON.parse(localStorage.current_user)._id) {
    const wrapper = document.createElement('div');
    wrapper.className = 'wrap';
    const prodHolder = document.getElementById('demo').appendChild(wrapper);

    const offerBidderId = document.createElement('p');
    const offerBidderIdText = document.createTextNode(
      'Bidder id: ' + getUserName(newOffer.bidder_id),
    );
    console.log('New offer bidder id ' + newOffer.bidder_id);
    offerBidderId.appendChild(offerBidderIdText);
    wrapper.appendChild(offerBidderId);
    ....
}

也许问题出在这里?

最佳答案

fetch 总是返回一个 Promise。所以你必须用 thenasync/await 来处理它。

您可以像这样访问它:

getUserName(1).then(name => {
   console.log('El nombre es: ' + name);
});

或在异步函数中:

async function access() {
    const name = await getUserName(1);

    console.log('El nombre es: ' + name);
}

关于异步函数的好文章:https://developers.google.com/web/fundamentals/primers/async-functions

关于javascript - 为什么我在 javascript 中获取用户名时遇到问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53407638/

相关文章:

javascript - 在javascript中重置表单数组

javascript - Stripe : How to set up recurring payments without plan?

javascript - 使用脚本在 Google 表格中重新定位光标

javascript - 使用 jQuery 查找两个 DIV 之间的距离?

javascript - VS JavaScript IntelliSense 没有按预期工作

javascript - ng-pattern 不应匹配提供的模式

javascript - 使用 jQuery 和函数 .live() 检测到页面上的任何更改?

javascript - 如何从 html 表单中获取输入值并转换为 csv?

javascript - Android Gradle 在 APK META-INF/license.txt 中复制的重复文件

javascript - 缩放固定宽度的字体以适应一行中恒定数量的字符