> On 6 Mar 2015, at 23:19, Louis Sherren <[email protected]> wrote:
>
> I have to do some async call in some constructor, like retrieve data from
> mysql.
> I'm trying to use Promise to handle the 'async' thing but I find it
> impossible because:
>
> I must return Promise object in constructor but the constructor is called by
> 'new' key word, there shouldn't be any 'return' in constructor.
>
> Is there some way to do this piece of work?
> Now I just add another function like 'init' to do the async part, can I do it
> in constructor ?
There's two things you can do: use a plain function and call your constructor
internally:
function createThing(args) {
return doPrep.then(function (prepdata) { return new Thing(prepdata,
args); })
}
Or do the prep work in the constructor, but have the object not fully ready to
use -- which if you think of promises as future values and not flow control,
makes perfect sense:
function Thing(args) {
this.prep = doPrep();
}
/* Later */
var thing = new Thing();
thing.prep.then(function (prepdata) { ... })
What is the actual task you're trying to accomplish?
Aria
--
Job board: http://jobs.nodejs.org/
New group rules:
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
---
You received this message because you are subscribed to the Google Groups
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/nodejs/767C6524-80A3-40E3-86D2-21F870810C52%40dinhe.net.
For more options, visit https://groups.google.com/d/optout.