使用 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'])