gpt4 book ai didi

javascript - 这个 JavaScript 函数需要返回一个 Promise 吗?

转载 作者:行者123 更新时间:2023-11-29 18:12:19 24 4
gpt4 key购买 nike

假设我有一些 JS 可以像这样进行 AJAX 调用:

$.getJSON(myUrl, { targetState: state }, function (jsonData) {
}).success(function (jsonData) {
...
...
...
});

现在假设我想将此代码包装在一个函数中并让它在成功 block 中返回一些值,这样我就可以从我的应用程序的不同位置调用它。我创建的函数应该返回一个 Promise 吗?我认为它可能会,但我从未创建过返回 Promise 的 JS 函数,因此我不确定何时需要执行此操作。

最佳答案

Should the function I create return a Promise

是的。如果您想使用 promise,每个 执行任何异步操作的函数都应该为其结果返回一个 promise。没有异常(exception),真的。

wrap this code in a function and have it return some value in the success block

好消息:它并不复杂,因为 $.getJSON 确实已经给了您使用的 promise 。现在您需要做的就是使用 then method - 你可以传递一个回调来对结果做一些事情,并为回调的返回值取回一个新的 promise 。您只需将 success 替换为 then,并添加一些 return:

function target(state) {
var myUrl = …;
return $.getJSON(myUrl, { targetState: state })
// ^^^^^^
.then(function (jsonData) {
// ^^^^
/* Do something with jsonData */
return …;
// ^^^^^^
});
}

使用 promises,您不再需要将回调传递给 $.getJSON 函数。

so I can call it from various places in my app

现在,您可以调用该 target 函数,并在另一个回调中获取返回的 promise 的结果:

target({…}).then(function(result) {
…; return …;
});

关于javascript - 这个 JavaScript 函数需要返回一个 Promise 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26217478/

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