我今天看了很多例子。他们似乎建议应该在链中执行以下代码:
let f = () => {
return new Promise((res, rej) => {
console.log('entering function');
setTimeout(() => {
console.log('resolving');
res()
}, 2000)
});
};
Promise.resolve()
.then(f())
.then(f());
预期输出为:
entering function
resolving
entering function
resolving
但事实并非如此。输出是
entering function
entering function
resolving
resolving
我无法弄明白为什么。任何帮助将不胜感激。
答案 0 :(得分:11)
尝试then(f)
而不是then(f())
then
需要一个功能。
你也可以then(()=>f())