gpt4 book ai didi

javascript - 如何使用带有条件逻辑的 JavaScript Promise 并在返回之前存储到局部变量中?

转载 作者:行者123 更新时间:2023-12-01 02:28:00 24 4
gpt4 key购买 nike

我想涉及更多的逻辑,而不仅仅是 return new Promise(...);来自一个函数。我不确定将 Promise 存储到变量中是否会改变其背后的“同步性”,因为我见过的每个示例都没有这样做。我还想将 Promise 存储到一个变量中,通常在最后返回,即使我不涉及条件,因为它似乎不利于调试,并且通常将所有逻辑都驻留在 return 语句中。

function doSomething(){
var promise_var1;

if (condition){
//Do something async, like an AJAX call to an API
setTimeout(function(){promise_var1 = Promise.resolve('a')}, 3000);
}else{
//Do something synchronous, like setting a default value
promise_var1 = Promise.resolve('b');
}

return promise_var1;
}

doSomething().then(function(value){console.log('c'+value)});

我目前正在获取

doSomething() is undefined

但是我尝试了各种方法,所以我可能在概念上误解了一些东西。

编辑:“重复”问题是询问如何处理 promise 内的条件。我问如何通过变量返回 promise (以实现 single exit )。这可能是不可能的,因为 JavaScript 是弱类型的,并且 Promise 变量返回与 Promise 返回可能表现不同,但如果有解决方案可以做到这一点,我更喜欢单退出而不是多次返回。

最佳答案

尝试这样写你的 promise 。

   function doSomething(condition){

var promise_var1= new Promise(function(resolve, reject) {
if(condition){
//resolve after your async action
setTimeout(resolve('a'), 3000);
}else{
//resolve immediately
resolve('b');
}
});


return promise_var1;
}

关于javascript - 如何使用带有条件逻辑的 JavaScript Promise 并在返回之前存储到局部变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48574486/

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