0

一段时间以来,我一直在尝试从 JSON 列表返回 URL。我尝试过使用各种方法,但似乎无法让它工作......我想知道我将如何返回一个值。我还没有真正尝试过 JavaScript,所以我想我已经有了这个......

无论如何,这里是代码:


async function getGithubPicture(username, callback) {
    let data = await fetch('https://api.github.com/users/' + username);
    let main = await data.json().then((data) => {
        return data.avatar_url.toString();
    });
    return main;
}

document.getElementById('pfp').src = getGithubPicture('harryuk');

因此,我想getGithubpicture从与用户名对应的 JSON 文件中返回一个字符串harryuk,但返回的是[object promise],我知道它运行正常,但我想以不同的方式运行它,这就是我的块所在的位置

4

2 回答 2

1

异步函数总是返回AsyncFunction对象。所以它返回承诺

async function getGithubPicture(username, callback) {
    let data = await fetch('https://api.github.com/users/' + username);
    let main = await data.json();
    return main.avatar_url.toString();
}

document.getElementById('pfp').src = await getGithubPicture('harryuk');
// or 
getGithubPicture('harryuk').then(url=> document.getElementById('pfp').src = 
url)
于 2019-06-11T12:27:26.163 回答
0

这是因为当您尝试将值分配给图像源时,您没有结果。你可以试试 :

function getGithubPicture(username, callback) {
    fetch('https://api.github.com/users/' + username)
    .then((response)=>{
    	return response.json();
    })
    .then((jsonResponse)=>{
      callback(jsonResponse.avatar_url.toString());
    });
}
function updateAvatar(avatarUrl){
		document.getElementById('pfp').src = avatarUrl;
}
getGithubPicture('harryuk',updateAvatar);
<img src="" id="pfp"/>

于 2019-06-11T12:53:32.563 回答