使用 q.when() 将简单值包装到 promise 中
如果你只需要将值包装到 promise 中,则不需要使用如下所示的长语法:
//OVERLY VERBOSE
var defer;
defer = $q.defer();
defer.resolve(['one', 'two']);
return defer.promise;
在这种情况下,你可以写:
//BETTER
return $q.when(['one', 'two']);
$ q.when 及其别名$ q.resolve
将可能是值的对象或(第三方)包装成$ q 承诺。当你处理可能是或可能不是 promise 的对象,或者 promise 是来自不可信任的源时,这非常有用。
随着 AngularJS v1.4.1 的发布
你还可以使用 ES6 一致别名 resolve
//ABSOLUTELY THE SAME AS when
return $q.resolve(['one', 'two'])