【发布时间】:2018-03-19 16:11:08
【问题描述】:
按照我在 ES6 中的理解阅读文档的含义:
foo => someFun(foo);
相当于:
foo => { return someFun(foo); }
我正在返回一个新的 Promise,并在该代码中使用箭头函数调用解析和拒绝方法,例如
return new Promise(function(resolve, reject)
{
someFunThatReturnsAPromise()
.then(data => resolve(data))
.catch(err => reject(err));
});
其实 then 中的代码就是这样,
.then(data => return resolve(data))
如果是这样,resolve 的结果(我不确定值的类型)是否重要,我是否应该稍微不那么简洁并使用 {} 编写它以防止隐式返回
.then(data => { resolve(data); })
【问题讨论】:
-
几个 cmets 已经准确地指出不需要内部的 Promise。因此,请考虑原始问题,但将 then 修改为“.then(data => resolve(data.item))”,即执行一些额外的(尽管是轻微的)处理
-
无论如何,避免
Promiseconstructor antipattern 并且不要将resolve/reject作为对承诺的回调传递!
标签: javascript ecmascript-6 es6-promise arrow-functions