【发布时间】:2018-09-02 21:39:57
【问题描述】:
如何在function myFunc() 中获取变量data 的值?下面是我的代码的 sn-p。我想在这个实例var data = ret; 上检索一个值,以便在函数console.log(data) 之外使用。该代码返回一个带有ReferenceError: data is not defined 的错误。
myFunc();
function myFunc() {
query().then(function(ret) {
console.log('result', ret); // result "@dara"
var data = ret;
});
console.log(data); // ReferenceError: data is not defined
}
function query() {
var url = 'https://www.json-generator.com/api/json/get/coyqwdNpWq?indent=2';
return fetch(url, {
method: 'GET',
})
.then(function(response) {
return response.json();
})
.catch(function(error) {
console.error('Error:', error);
})
.then(function(response) {
//console.log('Success:', response[0].name);
return response[0].name;
});
}
【问题讨论】:
-
Possible duplicate。 (不,它是异步的)
-
console.log(data);是同步的。获取数据是异步的。
-
只需在
myFunc的范围内定义data变量。现在data定义在回调范围内。 -
只需在 myFunc 的开头删除 data 变量
标签: javascript web promise fetch fetch-api