我刚刚注意到了这件事。当我有这段代码时,Atom JSCS linting不会给我任何错误
findById: id => {
new Promise((resolve, reject) => {
Zone.findById(id)
.then(data => {
resolve(data);
})
.catch(err => {
reject(new Error('Sorry...'));
});
});
},
但是,我的服务器返回以下错误:
TypeError:无法读取未定义的属性'then'
当我在此行中添加return
时,我的应用将正常运行:
return new Promise((resolve, reject) =>
看来我的节点服务器无法识别函数的新语法。是因为我需要使用Babel吗?也许我完全走错了路...
P.S我引用了this堆栈溢出问题以发现我需要显式使用return
:
答案 0 :(得分:1)
卸下功能主体周围的括号。如果放置括号,该函数将返回undefined
。
(() => { 1 })();
// undefined
(() => 1)();
// 1
答案 1 :(得分:1)
删除承诺中的括号,以便承诺可以返回已解决的值。
findById: id => new Promise((resolve, reject) => {
Zone.findById(id)
.then(data => {
resolve(data);
})
.catch(err => {
reject(new Error('Sorry...'));
});
}
还要确保Zone.findById()始终返回Promise
答案 2 :(得分:0)
findById: (id) => Zone.findById(id)
您为什么不使用这种结构?已经是一个承诺!