Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> .then() does not create a new Promise

It returns a promise, right?

  > var foo = Promise.resolve([1,2,3]).then(function() { return 5 })
  > foo
  < Promise {[[PromiseStatus]]: "resolved", [[PromiseValue]]: 5}


I'd think it would return the original promise, for chaining.


No, it returns a new Promise that's already been resolved to the value you returned previously.


Not quite :) See my paste above, it returns a new Promise in pending state that will return the value in the new then block ("5" here), possibly immediately. (i.e. pending for one event loop tick, then resolved)


Yes, you're right. My bad.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: