代码为200时,如何打破for循环?"/>
当响应代码为200时,如何打破for循环?
在下面的脚本中,我试图打破for循环,一旦我得到状态码为200,但即使在收到状态码200后,请求仍然发生。
var getLibraries = host+'webcontents/libraries';
pm.sendRequest(getLibraries, function (err, response) {
var jsonData = response.json();
var library_id;
var statusCode;
var length = jsonData.contents.length;
for (var i = 0; i < length; i++ ){
library_id = jsonData.contents[i].id;
var getMLSConfigURL = host+'/library/'+library_id;
pm.sendRequest(getMLSConfigURL, function (err, response) {
statusCode = response.code;
if(statusCode == 200){
var mlsConfigData = response.json();
console.log('ID: ', mlsConfigData.id);
pm.environment.set("MLSConfigLib_Id", mlsConfigData.id);
return;
}
});
if(statusCode == 200){
break;
}
}
});
回答如下:试试下面的脚本。
var getLibraries = host+'webcontents/libraries';
pm.sendRequest(getLibraries, function (err, response) {
var jsonData = response.json();
getResponse(0, jsonData.contents)
});
const getResponse = function (iteration, contents){
if(iteration < contents.length()){
var getMLSConfigURL = host+'/library/'+contents[iteration].id;
pm.sendRequest(getMLSConfigURL, function (err, response) {
if(response.code === 200){
var mlsConfigData = response.json();
console.log('ID: ', mlsConfigData.id);
pm.environment.set("MLSConfigLib_Id", mlsConfigData.id);
return;
}else{
getResponse(iteration+1, contents);
}
});
}
return;
}
更多推荐
当响应代码为200时,如何打破for循环?
发布评论