我的工厂里有这样的方法
getTogether() {
let promise = this._$q.all([this._$http.get('/groups'), this._$http.get('/tasks')]);
return promise
.then((data) => {
//local variable for reduce server<->client
this._localList = data;
return this._localList;
});
};
我在控制器中调用此方法。
this._boardFactory.getTogether().then((list) => {
console.log(list)
});
一切都很完美,但我不理解一件事。
返回promise
和返回promise.then
之间的区别是什么?
谢谢你的支持
答案 0 :(得分:0)
如果您只在代码中执行return promise
,则会返回promise
对象的分辨率。但是,如果您执行return promise.then
,则会从then
子句返回承诺的解决方案。
then
返回一个promise,因此promise.then
将执行promise
,然后执行返回该promise的then
子句。
此处then
的更多信息:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then
答案 1 :(得分:-3)
我说Promise
是对象,then()
是Promise对象的方法,它重新运行另一个Promise。
Promise.prototype.then(onFulfilled, onRejected)
- 将履行和拒绝处理程序附加到承诺,并返回一个新的承诺,解析为被叫处理程序的返回值,如果未处理承诺,则返回其原始结算值(即,如果相关处理程序onFulfilled或onRejected不是函数)。
下图说明了事情:
阅读:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
这就是它的出现方式
-Promise - let this is ajax call,
- then() - now this allows you to work on the output you received from first promise
- then() - now if you want to work on the output of second promise which return by then(first)
- then - another promise allows to wok on ouput of third
所以它有点链接......继续......你完成它