以下函数从url获取并获取图像,加载它并返回其宽度和高度:
function getImageData (url) {
const img = new Image()
img.addEventListener('load', function () {
return { width: this.naturalWidth, height: this.naturalHeight }
})
img.src = url
}
问题是,如果我做这样的事情:
ready () {
console.log(getImageData(this.url))
}
我得到undefined
,因为该函数已运行,但尚未加载图像。
如何使用await / async仅在照片已加载并且宽度和高度已经可用时返回值?
答案 0 :(得分:17)
如何使用
DBI::DatabaseError: Access denied for user 'testuser'@'120.120.120.120' (using password: YES)
/async
将此回调函数转换为承诺?
你不是。 As usual, you use the new Promise
constructor。那没有语法糖。
await
如果仅在照片已加载并且宽度和高度已经可用时如何使用
function loadImage(url) { return new Promise((resolve, reject) => { const img = new Image(); img.addEventListener('load', () => resolve(img)); img.addEventListener('error', reject); // don't forget this one img.src = url; }); }
/await
来记录值?
你可以做到
async
答案 1 :(得分:0)
该库工作得很好-它允许连接到子进程,或者如果需要,可以简单地异步返回结果:https://github.com/expo/spawn-async