Javascript 尝试从JSON文件返回URL

Javascript 尝试从JSON文件返回URL,javascript,asynchronous,ecmascript-6,promise,Javascript,Asynchronous,Ecmascript 6,Promise,我尝试从JSON列表返回URL已有一段时间了。我尝试过使用各种方法,但我似乎无法让它发挥作用。。。 我想知道如何返回一个值。我还没有对JavaScript做过太多的实验,所以我想我有这个机会 总之,代码如下: 异步函数getGithubPicture(用户名,回调){ 让数据=等待获取('https://api.github.com/users/“+用户名); 让main=wait data.json()。然后((数据)=>{ 返回data.avatar_url.toString(); });

我尝试从JSON列表返回URL已有一段时间了。我尝试过使用各种方法,但我似乎无法让它发挥作用。。。 我想知道如何返回一个值。我还没有对JavaScript做过太多的实验,所以我想我有这个机会

总之,代码如下:


异步函数getGithubPicture(用户名,回调){
让数据=等待获取('https://api.github.com/users/“+用户名);
让main=wait data.json()。然后((数据)=>{
返回data.avatar_url.toString();
});
回水总管;
}
document.getElementById('pfp').src=getGithubPicture('harryuk');

因此,我希望
getGithubpicture
从与用户名
harryuk
对应的JSON文件返回一个字符串,但返回的是
[object promise]
,我知道它运行正常,但我希望以不同的方式运行它,这就是我的块所在的地方,异步函数总是返回对象。所以这是回报的承诺

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)

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

函数getGithubPicture(用户名,回调){ 取('https://api.github.com/users/“+用户名) 。然后((响应)=>{ 返回response.json(); }) .然后((jsonResponse)=>{ 回调(jsonResponse.avatar_url.toString()); }); } 函数updateAvatar(avatarUrl){ document.getElementById('pfp').src=avatarUrl; } getGithubPicture('harryuk',updateAvatar)
尝试拆分命令。让main=wait data.json();main=main.avatar_url.toString();谢谢,代码现在看起来整洁多了。但我最初的问题仍然存在。您的问题是变量main得到了一个在返回时未进行评估的承诺。我不明白为什么这不起作用。非常感谢你,阿什普里特,你的答案非常有效。下次我会记得的。