What interesting: if I define .then just as:
.then(alert("in .then"));
then it works fine. But if i use the function() inside or the notation
you've provided:
            .then(output => {
                alert(output);
            });


then system never reaches the .then. What I'm doing wrong?

pt., 11 sty 2019 o 20:44 . <[email protected]> napisał(a):

> Martin,
>
> Thank you very much for the answer! Unfortunately I'm still stuck :-(
> Please take a look at the following code and tell me why it's still
> asynchronous. It display properly messages: "testFunct" and then "end of
> testFunct", but it never reach the .then or .done.
> Thank you in advance!
>
>     function testFunc() {
>      alert("testFunc");
>      lic = cockpit.spawn([
> "/usr/share/cockpit/testSoftware/connectExternalSystem"], {
>      directory: "/usr/share/cockpit/testSoftware",
>      err: "message"
>      })
>      .then(function() {
>      alert("in .then of testFunc. Error: "+message);
>             })
>             .done(function() {
>      alert("in .done of testFunc. Error: "+message);
>      });
>      alert("end of testFunc");
>     }
>
> czw., 10 sty 2019 o 09:02 Martin Pitt <[email protected]> napisał(a):
>
>> Hello Magik,
>>
>> . [2019-01-09 21:51 +0100]:
>> > I'm C programmer learning now Cockpit. My problem is as follows: for
>> some
>> > of the operation I must use external helper and I must wait for it
>> output.
>> > The cockpit.spawn() function returns the promise, which is non-blocking
>> > operation (as expected). How can I make it work as blocking one? Which
>> > mean: the rest of the code in the function should be done after
>> receiving
>> > full output of the cockpit.spawn (done() or fail())
>>
>> This is a common pitfal when coming from the world of synchronous
>> programming
>> languages (such as C or Python) and starting with asynchronous JavaScript.
>> Daniel's await proposal can certainly help to make async code look like
>> it was
>> written in a sync style; but honestly, it's really best to let go of this
>> pattern when writing JS.
>>
>> So instead of
>>
>>   output = cockpit.spawn(..).make_this_magically_sync();
>>   followup_action(output);
>>
>> actually use JavaScript promises as they are intended:
>>
>>   cockpit.spawn(..)
>>       .then(output => {
>>           followup_action(output);
>>       })
>>       .catch(err => {
>>           console.error(err);
>>       });
>>
>> i. e. organize the stuff that depends on the result into promise handlers.
>>
>> Martin
>> _______________________________________________
>> cockpit-devel mailing list -- [email protected]
>> To unsubscribe send an email to
>> [email protected]
>> Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
>> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
>> List Archives:
>> https://lists.fedorahosted.org/archives/list/[email protected]
>>
>
_______________________________________________
cockpit-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedorahosted.org/archives/list/[email protected]

Reply via email to