0
我需要做两个http请求。第二个http请求需要来自第一个请求的信息。第一个请求是设置第二个请求期间使用的变量'amount'。我如何使用承诺一个单一的变量?
这是我的codesection。
(变量“网址”和“数量”是存在的,foo()从别的东西。)
var Promise = require('bluebird');
var request = require('request-promise');
var amount;
request({url: url, json: true }, function(error, response, body) {
if (!error && response.statusCode == 200) {
amount = body.num;
}
}).then(function(data) {
if (number == null || number > amount) {
number = Math.floor(Math.random() * amount) + 1;
}
request({
url: url,
json: true
}, function(error, response, body) {
if(!error & response.statusCode == 200) {
foo();
}
});
});
代码工作,但它是不美与此筑巢的请求。有没有办法让一个变量的承诺,然后触发一个函数,当该变量已设置?
您正在使用['request-promise'](https://github.com/request/request-promise),但仍然使用非承诺回调。为什么? –
'number'从哪里来? –