尝试从JSON文件返回URL

时间:2019-06-11 12:15:17

标签: javascript asynchronous ecmascript-6 promise

一段时间以来,我一直在尝试从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],我知道这可以正常工作,但是我想要以不同的方式运行它,这就是我的障碍所在

2 个答案:

答案 0 :(得分:1)

异步函数始终返回AsyncFunction对象。所以它返回了诺言

with digits as (
      select v.n
      from (values (0), (1), (2), (3), (4), (5), (6), (7), (8), (9)) v(n)
     ),
     n as (
      select (d1*1000 + d2*100 + d3*10 + d4*1) n
      from digits d1 cross join
           digits d2 cross join
           digits d3 cross join
           digits d4 
     )
select dateadd(day, n.n, t.effdate)
from t join
     n
     on dateadd(day, n.n, t.effdate) <= t.enddate  ; 

答案 1 :(得分: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"/>