gpt4 book ai didi

javascript - 如何使用 Promise 设置变量值

转载 作者:行者123 更新时间:2023-12-03 06:20:21 25 4
gpt4 key购买 nike

我一直在思考如何使用 Promise 设置变量值(例如 ajax 调用的响应)。

例如,我有:

something.value = getVariable('id'); // { id : 'Adam Smith' }

哪里

getVariable(id) { 
return $.ajax({
//...
}).done(function(response) {
//... getVariable return response
}).fail(function(response) {
//... getVariable return something_else
});
// ...

一旦完成(),getVariable应该从promise更改为ajax(或任何其他异步)响应值。

最佳答案

您不能按照您尝试的方式直接设置变量。由于您的操作是异步的,因此您可以可靠地使用异步操作结果的唯一位置是 Promise 处理程序内部,例如 .done().then()。因此,将结果设置到某个变量中,然后期望在其他代码中使用该变量通常无法正常工作。它通常会导致计时问题。

相反,您必须学习使用异步结果进行编程,其中您实际上在 Promise 处理程序回调中使用变量。您不会存储它然后期望在其他代码中使用它。

function getVariable(id) { 
return $.ajax({...});
});

getVariable(...).then(function(response) {
// process result here
// don't just store it somewhere and expect other code to use that stored
// value. Instead, you use the result here and put whatever code
// needs that value in here.
}, function(err) {
// handle error here
});

关于javascript - 如何使用 Promise 设置变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38896614/

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