Re: A promise that resolves after a delay.

2016-02-05 Thread Isiah Meadows
I'd agree that we don't need `Promise.p.wait`, but I think eventually, ES is going to need a spec for an event loop. Or at least an interoperable spec agnostic of runtime should be created somewhere, like the eventual module loader. On Thu, Feb 4, 2016, 19:20 Jan-Ivar Bruaroey

Re: A promise that resolves after a delay.

2016-02-04 Thread Jan-Ivar Bruaroey
On 2/3/16 11:39 PM, Bob Myers wrote: Promise.resolve(42) . then(wait(1000)) . then( /* cb */); With ES6 I prefer the straightforward: var wait = ms => new Promise(resolve => setTimeout(resolve, ms)); Promise.resolve(42) . then(() => wait(1000)).then(() => { /* cb */ }); Too simple

Re: A promise that resolves after a delay.

2016-02-03 Thread Andrea Giammarchi
as pointed out offlist, the second line of my previous snippet was to shortcut the following: `new Promise(resolve => setTimeout(() => resolve("some value"), 1000));` assuming `"some value"` was static. In case it's not the `new Promise(r => setTimeout(r, 1000)).then(()=>"some value");` is the

Re: A promise that resolves after a delay.

2016-02-03 Thread Andrea Giammarchi
Chiming in just to underline that setTimeout and setInterval accepts extra arguments since about ever so that the following is eventually all you need. ```js new Promise(r => setTimeout(r, 1000)); new Promise(r => setTimeout(r, 1000, "some value")); ``` Best Regards On Wed, Feb 3, 2016 at

RE: A promise that resolves after a delay.

2016-02-03 Thread Domenic Denicola
I think this is a reasonable API, but ES is not the spec for it. ES does not have a proper concept of an event loop, and definitely not a proper concept of time. Note that setTimeout is not defined in ES, but instead in HTML: https://html.spec.whatwg.org/#dom-windowtimers-settimeout It might

Re: A promise that resolves after a delay.

2016-02-03 Thread C. Scott Ananian
Here's a quick plug for my `prfun` library (https://github.com/cscott/prfun) which implements this as `Promise.delay(1000)`. API at: https://github.com/cscott/prfun#promisedelaydynamic-value-int-ms--promise You can also do `return somepromise.delay(100)` which resolves to the same value as

Re: A promise that resolves after a delay.

2016-02-03 Thread Bob Myers
Easy to write yourself: ```js function wait(ms) { return function(v) { return new Promise(resolve => setTimeout(() => resolve(v), ms)); }; } ``` Now you can do ``` Promise.resolve(42) . then(wait(1000)) . then( /* cb */); ``` and the 42 will get passed through the callback. --Bob On