首页 > 解决方案 > 如何在 Postman 中的第二个请求之后运行请求

问题描述

我试图弄清楚如何在第一个请求返回响应后使第二个请求运行。我试图在谷歌上搜索,但我对 Postman 有点陌生,我不确定我应该寻找什么。我试图做类似的事情:

pm.sendRequest(req1, function(err, res) {
   pm.sendRequest(req2, function(err, done)
)});

但它没有用

while(documentLength>0)
{
 pm.sendRequest(listDocumentsRequest, function(err, res){
    pm.environment.set('dossierId',res.json().documentsList[index].subDossierId)
    pm.environment.set('documentId',res.json().documentsList[index].documentId)
});
 pm.sendRequest(getDocumentRequest);
    index++;
    documentLength--;
}

所以我试图发出第一个请求(listDocumentsRequest)然后等到我得到一个答案,然后运行第二个请求(getDocumentRequest),等到我得到一个答案然后移动到下一个迭代。

你们有什么想法吗?

此致

在寒冷的回答后编辑

while(documentLength>0)
{
const interval = setTimeout(() => {}, Number.MAX_SAFE_INTEGER);
function resolvedPromise() {
    return new Promise((resolve, reject) => {
        pm.sendRequest(listDocumentsRequest, (err, res) => {
            if (err) {
                console.log(err);
                reject();
            } else {
                    pm.environment.set('dossierId',res.json().documentsList[index].subDossierId)
                    pm.environment.set('documentId',res.json().documentsList[index].documentId)
                resolve();
            }
        });
    });
}
resolvedPromise()
    .then(pm.request(getDocumentRequest))
    .then(() => clearTimeout(interval))
    .catch(err => {
        console.log(err);
        clearTimeout(interval);
    });
    index++;
    documentLength--;
}

标签: javascriptasynchronouspromisepostman

解决方案


// Example with a plain string URL
pm.sendRequest('https://postman-echo.com/get', (error, response) => {
    if (error) {
        console.log(error);
    } else {
        // Example with a plain string URL
        pm.sendRequest('https://postman-echo.com/get/1', (error, response) => {
            if (error) {
                console.log(error);
            } else {
                console.log(response);
            }
        });
    }
});

您可以简单地链接请求您面临的错误是什么?在你的情况下,它看起来像

while (documentLength > 0) {
    pm.sendRequest(listDocumentsRequest, function (err, res) {
        pm.environment.set('dossierId', res.json().documentsList[index].subDossierId)
        pm.environment.set('documentId', res.json().documentsList[index].documentId)
        pm.sendRequest(getDocumentRequest, function (err, res) {});
        index++;
        documentLength--;
    });

}

推荐阅读