Yes, they are the same and can be used interchangeably.
I've tried it and it works without any problem.
ClojureScript:cljs.user> (def spawn (.-spawn (js/require "child_process")))
#<function (file /*, args, options*/) {
...
ClojureScript:cljs.user> (let [p (spawn "ls" #js["-l"])]
(.on (.-stdout p) "data" println))
#<[object Object]>
#<total 1064
-rw-r--r-- 1 jkn staff 1817 Feb 5 13:27 README.md
drwxr-xr-x 3 jkn staff 102 Feb 6 10:53 checkouts
-rw-r--r-- 1 jkn staff 536522 Feb 5 13:27 cljs_node_lighttable.js
-rw-r--r-- 1 jkn staff 830 Feb 5 13:27 project.clj
drwxr-xr-x 3 jkn staff 102 Feb 5 13:27 src
drwxr-xr-x 4 jkn staff 136 Feb 10 15:04 target
>
On Thu, Mar 13, 2014 at 6:03 PM, Nick Featch <[email protected]> wrote:
> On Wednesday, 12 March 2014 20:42:27 UTC, Joaquín Oltra wrote:
> > Take a good look at the node.js docs, and show how you are swapping exec
> for spawn. They are different functions and they take different arguments.
> One difference for example is that the second argument in spawn is an array
> with the args and in exec is options for the execution.
> >
> >
> http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options
> >
> > Another big difference is that exec gives you the results in the
> callback and spawn returns a ChildProcess object which is an event emitter,
> so it is not a matter of just swapping which function you are using.
> >
> > Look at the examples in the docs and translate them to cljs, it should
> be easy and there are plenty of them.
> >
> > Cheers
>
> Hi thanks for your reply. Sorry my post did suggest I was simply just
> swapping .exec for .spawn and hopping it would work ha ha. I've studied the
> docs and tried to apply the differences as you can see below.
>
> (def child-process (nd/require "child_process"))
>
> (defn spawn [cmd arg opt] (.spawn child-process cmd arg opt))
>
> (let [opt (utl/cmap->jobj {:cwd project-path})
> proc (env/spawn "silk" (array "reload") opt)]
> (.on (.-stdout proc) 'data' (fn [data]
> (.log js/console data))))
>
> The process runs (I can see it creating the file and directories I expect)
> but no logging is preformed. Can you pass a clojurescript anonymous
> function to a JavaScipt method?
>
>
>
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "ClojureScript" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojurescript/TObqicBxmKQ/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/clojurescript.
>
--
Note that posts from new members are moderated - please be patient with your
first post.
---
You received this message because you are subscribed to the Google Groups
"ClojureScript" 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].
Visit this group at http://groups.google.com/group/clojurescript.