gpt4 book ai didi

javascript - 这是使用 Promise 的好用例吗?

转载 作者:行者123 更新时间:2023-11-28 19:02:24 25 4
gpt4 key购买 nike

我正在处理一串 XMLHttpRequest,每个 XMLHttpRequest 都依赖于它之前的一个。伪代码:

xhr1.open('GET', 'http://foo.com');
xhr1.onload = function(e){
xhr2.open('POST', xhr1.response.url)
xhr2.onload = function(e){
xhr3.open('GET', xhr2.response.url2);
xhr3.onload = function(e){
console.log('hooray! you have data from the 3rd URL!');
}
xhr3.send();
}
xhr2.send();
}
xhr1.send();

在这种情况下,使用 Promise 是避免所有回调垃圾的好主意吗?

最佳答案

是的。如果您在 then 中返回一个 Promise,则下一个链接的 then 会监听该 Promise,而不是从原始 Promise 解析。鉴于 ajaxCall 返回一个 promise ,您的代码将如下所示:

ajaxCall(1)
.then(function(result1){
return ajaxCall(2);
})
.then(function(result2){
return ajaxCall(3);
})
.then(function(result3){
// all done
});

// Sample AJAX call
function ajaxCall(){
return new Promise(function(resolve, reject){
// xhr code. call resolve/reject with accordingly
// args passed into resolve/reject will be passed as result in then
});
}

关于javascript - 这是使用 Promise 的好用例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32279408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com