【发布时间】:2019-09-13 17:52:05
【问题描述】:
我正在创建 Google Chrome 扩展程序,并在 background.js 中声明了一个函数,该函数正在访问 API,应该返回一个值,但它返回的是未定义的值。在返回语句有价值之前写控制台日志。
var produImage;
function getImage() {
fetch('/api/images.json').then(
function (response) {
response.json().then(function (data) {
var dataresponse=data.results;
for (var obj = 0; obj < dataresponse.length; obj++)
{
produImage=dataresponse[0].url_170x135;
//console.log writing value
console.log(produImage);
//returning undefind
return produImage;
}
});
}
);
}
//call to function
'<td><img width="50" height="50" src="' + getImage() + '"/></td>'
问题
console.log(produImage)
赋予价值
返回产品图片
返回未定义
已编辑
也按照Chris的建议尝试过
function getImage() {
return fetch('/api/images.json').then(
function (response) {
return response.json().then(
function (data) {
;
return data.results[0].url_170x135;
}
);
}
);
}
然后调用函数
getImage().then(function (imageSrc) {
const html = `<td><img width="50" height="50" src="${imageSrc}"/></td>`;
});
但我仍然无法将值连接到 var result 得到 undefined
我想这样连接:
result = `<tr>
<td>${How To concatenate Here}</td>
<td>${dResponse[obj].category_path}</td>
<td>${dResponse[obj].price}</td>
</tr>`;
请建议我,如何从返回 promise 对象的 getImage() 获得简单的结果?
【问题讨论】:
-
在 main 函数中声明 var produImage,在 promise 'then' 链范围内添加 return 语句并添加到 main 函数体中
-
第一个异步,第二个,循环返回是没有意义的......除非你真的想在第一次迭代时退出。
-
@epascarello 是的,循环毫无意义。我会清理它。
标签: javascript google-chrome-extension