gpt4 book ai didi

javascript - 使用链式 Q promises 异步加载的局部变量

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

我有疑问.. 如果我在 promise 的 .then() 之前定义变量,我在 .then() 中可以使用它们,我是不是正确的?回调不是这样,但它应该使用 q promise 。

为了确定这一点,我想问一下下面的代码是否正确,即使是在多个请求的情况下也是如此。

所以第二个.then()arg2总是正确的,而不是最后一个调用的arg2我的应用程序()。

function myapp()
{
var arg1=1;
var arg2=undefined; // loaded async
var arg3=undefined; // loaded async

call_promise(arg1)
.then(function(data)
{
arg2 = data;
})
.then(function()
{
arg3 = call_function(arg2);
console.log(arg3);
})
.catch(function(err){});
}

最佳答案

是的,这会奏效。无论函数被调用多少次,函数中都会创建新的变量。并且由于闭包属性,传递给 then 处理程序的函数仍然能够访问 arg2arg3

但是,执行此操作的正确方法是,通过返回值来解决 then 处理程序返回的 promise ,就像这样

function myapp() {
var arg1 = 1;
return call_promise(arg1)
.then(function(data) {
return data;
}).then(function(arg2) {
console.log(call_function(arg2));
}).catch(function(err) {});
}

关于javascript - 使用链式 Q promises 异步加载的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36033639/

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