我读了一些文章的这个位置(回调),但我还是没有真正充分了解如何解决我的问题。所以我希望有人在这里可以帮助我与我的,我会更好地得到它。
简单的放我想要的ID我第一次请求获取用于第二请求。
我一般是新来的JavaScript和的NodeJS。
function idRequest(name) {
var options = {
...
};
function callback(error, response, body) {
if (response.statusCode == 200 && !error) {
const info = JSON.parse(body);
//console.log(info.accountId);
return info.accountId;
}
}
request(options, callback);
}
function requestById(accountId) {
var options = {
...
};
function callback(error, response, body) {
if (response.statusCode == 200 && !error) {
const info = JSON.parse(body);
console.log(info);
}
}
request(options, callback);
}
var id = idRequest('..');
requestById(id);
通过从第一功能和里面解决回调返回一个承诺尝试,所以一旦得到解决,您可以使用它,然后触发第二功能
function idRequest(name) {
var options = {
...
};
function callback(error, response, body) {
if (response.statusCode == 200 && !error) {
const info = JSON.parse(body);
//console.log(info.accountId);
return info.accountId;
}
}
return new Promise(function(resolve, reject) {
resolve(request(options, callback))
})
}
function requestById(accountId) {
var options = {
...
};
function callback(error, response, body) {
if (response.statusCode == 200 && !error) {
const info = JSON.parse(body);
console.log(info);
}
}
request(options, callback);
}
var id = idRequest('..').then(function(data) {
requestById(data);
});
因为回调是一个异步调用,所以var id
会undefined
,当你调用requestById(id);
所以要么你可以使用承诺方法,通过@brk解决,或者您可以直接从第一回调打电话给你requestById(id)
功能。