一旦图像可用,就动态加载图像

时间:2018-05-05 18:12:31

标签: javascript html image amazon-s3

好的,情况就是这样。我有一个网站,用户可以在其中创建新闻Feed故事。该故事向服务发送请求,该服务拍照并将其保存到S3。在将图片保存到S3之前,用户会看到他们的新闻Feed故事是通过损坏的图片链接创建的。

是否可以知道该图像何时保存到S3,然后只更新UI以显示现在的图像而无需用户刷新页面,或者不经常发送请求以检查图像是否可用?

1 个答案:

答案 0 :(得分:1)

是的,你有很多方法可以做到这一点,你可以使用Promises来存档,Promises让你运行同步代码。当您向服务器询问图像时,您仍然没有显示它,您需要一些时间,您可以做这样的事情(我不知道您使用什么来到达服务器但我给你一个axios的例子:

因为axios通过defa返回一个承诺

function reachServer() {
  return axios.get('url');
}

function loadImage() {
  Promise.resolve(reachServer())
    .then((image) => {
      //got the image
      myImage = image;
    })
    .catch(() => {
     // a error ocurred loading
    })
}

这是一个关于如何存档的简单案例,你有很多其他的,你可以使用image.onload,或async / await与ES6,我认为Promises和async / await是最好的选择。

希望有所帮助