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'從哪裏來? –