我有一个返回promise对象的函数。这是我的代码
var foo = function(){
// doSomething() is a promise object
return doSomething().then(() => {
Promise.resolve('Hello');
});
};
foo().then((res) => {
console.log(res);
// res = undefined but not "Hello"
});
我认为函数foo
会返回promise对象,我会得到字符串“Hello”。但我没有定义。为什么呢?
答案 0 :(得分:4)
你错过了Promise.resolve之前的回复,所以它应该是
var foo = function(){
return doSomething().then(() => {
return Promise.resolve('Hello');
^^^^^^
});
};
然而,实际上你根本不需要它,并且只能返回字符串Hello。
var foo = function(){
return doSomething().then(() => {
return 'Hello';
});
};
通过使用箭头函数的简洁体形,您可以使其更简单,而不是{}
。
var foo = function(){
return doSomething().then(() => 'Hello');
};