如果我提醒这样的标题,标题会被正确警告并且有值。
var myRequest = new Request('URL');
var title;
fetch(myRequest).then(function(text) {
return response.text().then(function(text) {
title= text;
alert (title);
});
});
如果我提醒这样的标题 - 在例程之外,变量标题为空/未定义。
var myRequest = new Request('URL');
var title;
fetch(myRequest).then(function(text) {
return response.text().then(function(text) {
title= text;
});
});
alert (title);
我需要在获取例程之外提醒标题。
我尝试在例程中声明变量并为变量提供fetch例程title = fetch(myRequest)......没有任何效果。
我做错了什么?错误在哪里?
注意:我隐藏了此帖子中提取的网址。抓取工作正常。
答案 0 :(得分:0)
在您的alert(title)
电话从Promise链开始后,您的fetch
会立即被调用。你的承诺尚未实现。
答案 1 :(得分:0)
这不是关于范围,而是关于计时。 fetch
来电之后的代码在<{strong> 之前运行fetch
来电启动完成后,会在调用回调之前运行。
如果您想在其他地方使用title
,则需要在回调中调用代码,例如:
var myRequest = new Request('URL');
var title;
fetch(myRequest).then(function(text) {
return response.text().then(function(text) {
title= text;
doSomethingWithTitle();
});
});
function doSomethingWithTitle() {
alert(title);
}
我对你的代码的return response.text().then(...
部分感到有些困惑,但是我假设这是正确的,我把它留在了上面。但它真的很可疑。 : - )