gpt4 book ai didi

javascript - 以 Angular 创建空的 promise ?

转载 作者:IT王子 更新时间:2023-10-29 02:59:44 26 4
gpt4 key购买 nike

我想做这样的事情:

var promise = IAmAEmptyPromise;

if(condition){
promise = ApiService.getRealPromise();
}

promise.then(function(){
//do something
});

所以我想声明一个 promise,它可以使用 then 解决。然而,这个 promise 可能会被另一个返回内容的 promise 覆盖。后来我想解决 promise 是否有内容。这可能吗?我试过:

var promise = $q.defer().promise;

if(!$scope.user){
promise = UserService.create(params);
}

promise.then(function(){
//either user was created or the user already exists.
});

但是当用户在场时这不起作用。有什么想法吗?

最佳答案

如 Bixi 所写,您可以使用 $q.when() 将 promise 或值(value)包装到 promise 中。如果你传递给 when() 的是一个 promise ,它会被返回,否则会创建一个新的 promise ,它直接用你传入的值解析。像这样:

var promise;
if(!$scope.user){
promise = UserService.create(params);
} else {
promise = $q.when($scope.user);
}

promise.then(function(user){
//either user was created or the user already exists.
});

关于javascript - 以 Angular 创建空的 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22506253/

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