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 wrote:
> On 2/3/16
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 t
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 T
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 wa
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 `samep
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 8:5
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 be
7 matches
Mail list logo