在 JavaScript 中使用 Promise 时有些奇怪
Some strange when using Promise in JavaScript
我有一个 return 承诺对象的函数。这是我的代码
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
会 return promise 对象,我会得到字符串 "Hello"。但是我不确定。为什么?
您在 Promise.resolve 之前缺少一个 return,所以它应该是
var foo = function(){
return doSomething().then(() => {
return Promise.resolve('Hello');
^^^^^^
});
};
然而,实际上您根本不需要它,可以 return 字符串 Hello。
var foo = function(){
return doSomething().then(() => {
return 'Hello';
});
};
您可以使用箭头函数的简洁主体形式使其更简单,省去 {}
。
var foo = function(){
return doSomething().then(() => 'Hello');
};
我有一个 return 承诺对象的函数。这是我的代码
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
会 return promise 对象,我会得到字符串 "Hello"。但是我不确定。为什么?
您在 Promise.resolve 之前缺少一个 return,所以它应该是
var foo = function(){
return doSomething().then(() => {
return Promise.resolve('Hello');
^^^^^^
});
};
然而,实际上您根本不需要它,可以 return 字符串 Hello。
var foo = function(){
return doSomething().then(() => {
return 'Hello';
});
};
您可以使用箭头函数的简洁主体形式使其更简单,省去 {}
。
var foo = function(){
return doSomething().then(() => 'Hello');
};