【发布时间】:2019-08-09 18:21:33
【问题描述】:
我在订购我的功能时遇到了一些问题。
我有 2 个功能。其中两个向http请求。
什么场景?
在第一次请求时我得到一些响应,在这个响应中我得到一些字符串并将其设置为某个变量。
在第二个请求中,我将此字符串添加到我的请求 url。
但是当我设置我的变量时,我的第二个请求在那之前在第一个请求响应中工作。
因为我得到了我的变量的未定义值。
我知道这是同步、异步问题,但我该如何解决这个问题?
这是我的变量,我将在第二个请求 url 的末尾添加。
var urlString = '';
这是我的第一个要求:
var requestone = new XMLHttpRequest();
requestone.onload = function () {
if (requestone.status >= 200 && requestone.status < 300) {
var data = requestone.response;
data = JSON.parse(data);
urlString = data.Key
} else {
console.log('fail')
}
};
requestone.open('GET', 'apiurl');
requestone.send();
这是我的第二个要求:
var requesttwo = new XMLHttpRequest();
requesttwo.onload = function () {
if (requesttwo.status >= 200 && requesttwo.status < 300) {
var data = requesttwo.response;
} else {
console.log('fail')
}
};
requesttwo.open('GET', 'apiurl' + urlString);
requesttwo.send();
【问题讨论】:
-
使用 javascript Promises 或 async/await
标签: javascript function