lea*_*ode 22 javascript promise
我是JS世界的新手.我正在尝试编写一个测试用户在网站上的操作的测试用例.我正在使用request-promise模块来测试asyn调用.我找不到任何api文档请求承诺.如何访问响应的状态代码?现在它打印undefined.此外,任何人都可以确认,我们如何知道什么承诺成功后返回,它是一个单独的值,它解析为或异步函数返回的所有参数.我们怎么知道function()的参数是什么request.get(base_url).then(function(response, body).
var request = require("request-promise");
var promise = require("bluebird");
//
var base_url = "https://mysignin.com/"
//
describe("My first test", function() {
it("User is on the sign in page", function(done) {
request.get(base_url).then(function(response, body){
// expect(response.statusCode).toBe('GET /200');
console.log("respnse " + response.statusCode);
console.log("Body " + body);
done();
}).catch(function(error) {
done("Oops somthing went wrong!!");
});
});
});
Run Code Online (Sandbox Code Playgroud)
Rob*_*ley 44
默认情况下,请求承诺库仅返回响应本身.但是,您可以在选项中传递一个简单的变换函数,该函数需要三个参数并允许您返回其他内容.
所以,如果我想要标题和响应返回给我,我会这样做:
var request = require('request-promise');
var uri = 'http://domain.name/';
var _include_headers = function(body, response, resolveWithFullResponse) {
return {'headers': response.headers, 'data': body};
};
var options = {
method: 'GET',
uri: uri,
json: true,
transform: _include_headers,
}
return request(options)
.then(function(response) {
console.log(response.headers);
console.log(response.data);
});
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
Kos*_*tas 29
var request = require('request-promise');
request.get('someUrl').then(function(body) {
// body is html or json or whatever the server responds
});
request({
uri: 'someUrl',
method: 'GET',
resolveWithFullResponse: true
}).then(function(response) {
// now you got the full response with codes etc...
});
Run Code Online (Sandbox Code Playgroud)