gpt4 book ai didi

javascript - 等待 ".then"解决

转载 作者:行者123 更新时间:2023-12-03 03:53:16 27 4
gpt4 key购买 nike

我一直对“然后”不被等待的行为感到困扰,我明白其原因。然而,我仍然需要绕过它。这是我的用例。

doWork(family) {
return doWork1(family)
.then(resultOfWork1 => doWork2(resultOfWork1));
}

doWork1(family) {
if (1 === family) {
return doFamily1();
} else {
return doFamily2();
}
}

doFamily1() {
return $http(urlToFamily1)
.then(response => parseFamily1Result(response));
}

parseFamily1Result(response) {
return parsed response in a family1 way;
}

doFamily2() {
return $http(urlToFamily2)
.then(response => parseFamily2Result(response));
}

parseFamily2Result(response) {
return parsed response in a family2 way;
}

doWork2(resultOfWork1) {
// use resultOfWork1
}

我正在做的事情的问题是,在 doWork2 中,resultOfWork1 未定义,因为在到达 doWork2 之前不需要执行“then” promise 。

有没有办法保证“然后”的实现?或者说这种做事方式有什么问题吗?

最佳答案

您错误地链接了 Promise。

而不是

doWork(family) {
return doWork1(family)
.then(doWork2(resultOfWork1));
}

更改为

doWork(family) {
return doWork1(family)
.then(function(resultOfWork1){ doWork2(resultOfWork1); });
}

或者

doWork(family) {
return doWork1(family)
.then(doWork2);
}

您还需要对以下代码进行类似的更改。

$http(urlToFamily1)
.then(parseFamily1Result(response));

$http(urlToFamily2)
.then(parseFamily2Result(response));

关于javascript - 等待 ".then"解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45081738/

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