Async/Await 函数返回 _40: 0, _65: 0, _55: null, _72: null
Async/Await function returning _40: 0, _65: 0, _55: null, _72: null
我在尝试获取图像的原始大小时从 Async/Await 函数返回了这个 { _40: 0, _65: 0, _55: null, _72: null }
。函数用法参考https://www.npmjs.com/package/react-native-image-size
这是我的代码。
getImgSize = async (url) => {
const {width, height} = await ImageSize.getSize(url);
const imgSize = { width: width, height: height }
console.log(imgSize) // result is { width: 950, height: 634 }
return imgSize;
}
function getImage(){
var imgSize = getImgSize("https://img.purch.com/w/660/aHR0cDovL3d3dy5saXZlc2NpZW5jZS5jb20vaW1hZ2VzL2kvMDAwLzEwNC84MzAvb3JpZ2luYWwvc2h1dHRlcnN0b2NrXzExMTA1NzIxNTkuanBn");
console.log(imgSize) // result after returned { _40: 0, _65: 0, _55: null, _72: null }
}
我希望结果类似于 { width: 950, height: 634 }
但我提到的结果却被返回了。
试一试
getImgSize("<Image URL>")
.then((imgSize)=>console.log(imgSize))
或者放在async/await
getImage = async () => {
var imgSize = await getImgSize("<Image URL>");
console.log(imgSize);
}
您必须将 async 与 await 一起使用或使用 then() => 反对它让我们看看它并在需要等待的地方使用它。
您需要添加await
和async
功能:
getImgSize = async (url) => {
const {width, height} = await ImageSize.getSize(url);
const imgSize = { width: width, height: height }
console.log(imgSize) // result is { width: 950, height: 634 }
return imgSize;
}
async function getImage(){
var imgSize = await getImgSize("https://img.purch.com/w/660/aHR0cDovL3d3dy5saXZlc2NpZW5jZS5jb20vaW1hZ2VzL2kvMDAwLzEwNC84MzAvb3JpZ2luYWwvc2h1dHRlcnN0b2NrXzExMTA1NzIxNTkuanBn");
console.log(imgSize) // result after returned { _40: 0, _65: 0, _55: null, _72: null }
}
您正在调用一个 async
函数,这意味着它是一个承诺。你得等结果。
所以要么使用await
getImage = async () => {
var imgSize = await getImgSize("https://img.purch.com/w/660/aHR0cDovL3d3dy5saXZlc2NpZW5jZS5jb20vaW1hZ2VzL2kvMDAwLzEwNC84MzAvb3JpZ2luYWwvc2h1dHRlcnN0b2NrXzExMTA1NzIxNTkuanBn");
console.log(imgSize);
}
或者这样处理
getImage = () => {
getImgSize('https://img.purch.com/w/660/aHR0cDovL3d3dy5saXZlc2NpZW5jZS5jb20vaW1hZ2VzL2kvMDAwLzEwNC84MzAvb3JpZ2luYWwvc2h1dHRlcnN0b2NrXzExMTA1NzIxNTkuanBn').then((imgSize) => {
console.log(imgSize);
});
}
我在尝试获取图像的原始大小时从 Async/Await 函数返回了这个 { _40: 0, _65: 0, _55: null, _72: null }
。函数用法参考https://www.npmjs.com/package/react-native-image-size
这是我的代码。
getImgSize = async (url) => {
const {width, height} = await ImageSize.getSize(url);
const imgSize = { width: width, height: height }
console.log(imgSize) // result is { width: 950, height: 634 }
return imgSize;
}
function getImage(){
var imgSize = getImgSize("https://img.purch.com/w/660/aHR0cDovL3d3dy5saXZlc2NpZW5jZS5jb20vaW1hZ2VzL2kvMDAwLzEwNC84MzAvb3JpZ2luYWwvc2h1dHRlcnN0b2NrXzExMTA1NzIxNTkuanBn");
console.log(imgSize) // result after returned { _40: 0, _65: 0, _55: null, _72: null }
}
我希望结果类似于 { width: 950, height: 634 }
但我提到的结果却被返回了。
试一试
getImgSize("<Image URL>")
.then((imgSize)=>console.log(imgSize))
或者放在async/await
getImage = async () => {
var imgSize = await getImgSize("<Image URL>");
console.log(imgSize);
}
您必须将 async 与 await 一起使用或使用 then() => 反对它让我们看看它并在需要等待的地方使用它。
您需要添加await
和async
功能:
getImgSize = async (url) => {
const {width, height} = await ImageSize.getSize(url);
const imgSize = { width: width, height: height }
console.log(imgSize) // result is { width: 950, height: 634 }
return imgSize;
}
async function getImage(){
var imgSize = await getImgSize("https://img.purch.com/w/660/aHR0cDovL3d3dy5saXZlc2NpZW5jZS5jb20vaW1hZ2VzL2kvMDAwLzEwNC84MzAvb3JpZ2luYWwvc2h1dHRlcnN0b2NrXzExMTA1NzIxNTkuanBn");
console.log(imgSize) // result after returned { _40: 0, _65: 0, _55: null, _72: null }
}
您正在调用一个 async
函数,这意味着它是一个承诺。你得等结果。
所以要么使用await
getImage = async () => {
var imgSize = await getImgSize("https://img.purch.com/w/660/aHR0cDovL3d3dy5saXZlc2NpZW5jZS5jb20vaW1hZ2VzL2kvMDAwLzEwNC84MzAvb3JpZ2luYWwvc2h1dHRlcnN0b2NrXzExMTA1NzIxNTkuanBn");
console.log(imgSize);
}
或者这样处理
getImage = () => {
getImgSize('https://img.purch.com/w/660/aHR0cDovL3d3dy5saXZlc2NpZW5jZS5jb20vaW1hZ2VzL2kvMDAwLzEwNC84MzAvb3JpZ2luYWwvc2h1dHRlcnN0b2NrXzExMTA1NzIxNTkuanBn').then((imgSize) => {
console.log(imgSize);
});
}