如何在 chrome 扩展中将一系列 POST 请求链接在一起?

How to chain together a sequence of POST requests in a chrome extension?

我正在尝试创建一个 Chrome 扩展,它将发出一系列 POST 请求,每个请求的参数都取决于前一个请求的响应。我正在使用 fetch 执行此操作。我了解如何使用 .then 来处理单个查询的组件之间的依赖关系,但我将如何处理跨查询的依赖关系?所以目前我的扩展有像

这样的代码
    fetch('http://localhost:8081/seed/create', {
        method: 'post',
        headers: new Headers({
            'Accept': 'application/json, text/plain, */*',
            "Content-Type": "application/json; charset=UTF-8"
        }),
        body: '{"name": "nutch","seedUrls":[{"seedList": null,"url": "http://nutch1.apache.org/"}]}'
    })
            .then(function (response) {
                        return response.text();
            })
            .then(function (text) {
                seed = text;
                console.log(seed);
                document.getElementById("post").innerHTML = "responsePost: " + seed;

            })
            .catch(function (error) {
                console.log('FAIL: ', error);
            });

});

但我随后需要第二个 POST 请求,该请求必须等待第一个请求成功,并使用之前的响应填充其负载。有小费吗?? 谢谢!

好的,我要回答我自己的问题 - 我采纳了 Daniel 的建议并使用了异步,这比 promises 更容易阅读(至少对我而言!):

async function getNutch(url) {

var response;
try {
    response = await fetch(url + "seed/create", {
        method: 'post',
        headers: new Headers({
            'Accept': 'application/json, text/plain, */*',
            "Content-Type": "application/json; charset=UTF-8"
        }),
        body: getPayload(payloadEnums.SEED)
    });
    seedDir = await response.text();
    console.log(seedDir);
} catch (err) {
    console.log('fetch failed: ', err);
}
try {
    response = await fetch(url + "job/create", {
        method: 'post',
        headers: new Headers({
            'Accept': 'application/json, text/plain, */*',
            "Content-Type": "application/json; charset=UTF-8"
        }),
        body: getPayload(payloadEnums.JOB)
    });
    console.log(await response.text());
} catch (err) {
    console.log('fetch failed: ', err);
}

}

这会强制两个查询按顺序 运行,第二个查询必须等到第一个查询完成 - 这就是我想要的。如果没有这种依赖性,你应该 运行 并行查询,如 link Daniel 在 asy

上提供的解释