这是我的代码段。我在做什么错?
async function getImages(){
return new Promise(function(resolve, reject) {
request.get("URL", function (error, response, body) {
let images = JSON.parse(body).results.map((image)=>{
return image.original_url;
})
resolve(images);
});
})
}
module.exports = async function addGame(req, res){
let ImagesArray = await getImages();
ImagesArray.forEach(URL => {
images.push({
"data": URL,
"uploadType" : "url",
"type": "image/jpeg",
"name": game.name
})
});
console.log(images);
}
另一方面,以下代码可以工作,但输出不同:
var images = [{
"image": {
"data": "FIRST IMAGE",
"uploadType": "url",
"type": "image/jpeg",
"name": game.name
}
}];
(async function main() {
let ImagesArray = await getImages();
ImagesArray.forEach(URL => {
images.push({
"data": URL,
"uploadType": "url",
"type": "image/jpeg",
"name": game.name
})
});
console.log(images); // [{"image" : {"data": "FIRST IMAGE", "uploadType" : "url", "type": "image/jpeg", "name": game.name } }, {...}, {...} ]
})();
console.log(images); // [{"image" : {"data": "FIRST IMAGE", "uploadType" : "url", "type": "image/jpeg", "name": game.name } }]
当我在异步模块中执行await时,JavaScript await产生以下错误,让ImagesArray = await getImages(); ^^^^^^^^^^^语法错误:...
回答如下:var images = [{
"image": {
"data": "FIRST IMAGE",
"uploadType": "url",
"type": "image/jpeg",
"name": game.name
}
}];
async function main() {
let ImagesArray = await getImages();
ImagesArray.forEach(URL => {
images.push({
"data": URL,
"uploadType": "url",
"type": "image/jpeg",
"name": game.name
})
});
});
main().then(() => console.log(images));
之后,您就可以等待top-level await
proposal lands。
这是我的代码段。我在做什么错?
async function getImages(){
return new Promise(function(resolve, reject) {
request.get("URL", function (error, response, body) {
let images = JSON.parse(body).results.map((image)=>{
return image.original_url;
})
resolve(images);
});
})
}
module.exports = async function addGame(req, res){
let ImagesArray = await getImages();
ImagesArray.forEach(URL => {
images.push({
"data": URL,
"uploadType" : "url",
"type": "image/jpeg",
"name": game.name
})
});
console.log(images);
}
另一方面,以下代码可以工作,但输出不同:
var images = [{
"image": {
"data": "FIRST IMAGE",
"uploadType": "url",
"type": "image/jpeg",
"name": game.name
}
}];
(async function main() {
let ImagesArray = await getImages();
ImagesArray.forEach(URL => {
images.push({
"data": URL,
"uploadType": "url",
"type": "image/jpeg",
"name": game.name
})
});
console.log(images); // [{"image" : {"data": "FIRST IMAGE", "uploadType" : "url", "type": "image/jpeg", "name": game.name } }, {...}, {...} ]
})();
console.log(images); // [{"image" : {"data": "FIRST IMAGE", "uploadType" : "url", "type": "image/jpeg", "name": game.name } }]
当我在异步模块中执行await时,JavaScript await产生以下错误,让ImagesArray = await getImages(); ^^^^^^^^^^^语法错误:...
回答如下:var images = [{
"image": {
"data": "FIRST IMAGE",
"uploadType": "url",
"type": "image/jpeg",
"name": game.name
}
}];
async function main() {
let ImagesArray = await getImages();
ImagesArray.forEach(URL => {
images.push({
"data": URL,
"uploadType": "url",
"type": "image/jpeg",
"name": game.name
})
});
});
main().then(() => console.log(images));
之后,您就可以等待top-level await
proposal lands。