gpt4 book ai didi

javascript - JavaScript Promises 解决了哪些编程障碍?或者说它们到底是什么?

转载 作者:行者123 更新时间:2023-12-02 14:37:02 25 4
gpt4 key购买 nike

我使用 JavaScript 编程已经有几年了,直到最近才听说过 Promise 这个术语。我在网上阅读了多篇有关它的文章,但仍然不明白 Promise 是什么。我没有看到任何严格的定义。我看到的每个例子都是我已经知道如何解决的问题。例如,

get('story.json').then(function(response) {
console.log("Success!", response);
}, function(error) {
console.error("Failed!", error);
});

来自 https://davidwalsh.name/promises我早就知道该怎么做

$.ajax({
url : 'story.json',
method : 'GET',
success : function(response) { console.log("Success!", response); },
error : function(error) { console.error("Failed!", error); }
});

那么我是否在不知道这个术语的情况下使用了 Promise 的概念?或者我错过的大型聚会在哪里?

最佳答案

附加功能是能够链接事物。如果您需要进行三个调用,并且所有调用都必须一个接一个地发生,您可以将您的 Promise 链接在一起,而不是:

$.ajax({
success () {
$.ajax({
success () {
$.ajax({
success () { /* do something with your sets of results */ }
});
}
});
}
});

相反,您可以执行以下操作:

fetch(url1).then(toJSON)
.then(result1 => fetch(url2).then(toJSON))
.then(result2 => fetch(url3).then(toJSON));

这两个示例并没有做完全相同的事情(您需要使用每个结果,或者将其传递出去,以传递它),但基本上 promise 包装您的过程并返回一个对象(带有 .then 方法),它允许您添加回调(并不断添加它们)。

关于javascript - JavaScript Promises 解决了哪些编程障碍?或者说它们到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37369816/

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