запускать окна или команду dos в Java [duplicate]

Вот некоторые подходы к работе с асинхронными запросами:
  1. Объект обезьяны браузера
  2. Q - A
  3. A + Promises.js
  4. jQuery отложен
  5. API XMLHttpRequest
  6. Использование концепции обратного вызова - как реализация в первом ответе

Пример: jQuery отложенная реализация для работы с несколькими запросами

var App = App || {};

App = {
    getDataFromServer: function(){

      var self = this,
                 deferred = $.Deferred(),
                 requests = [];

      requests.push($.getJSON('request/ajax/url/1'));
      requests.push($.getJSON('request/ajax/url/2'));

      $.when.apply(jQuery, requests).done(function(xhrResponse) {
        return deferred.resolve(xhrResponse.result);
      });
      return deferred;
    },

    init: function(){

        this.getDataFromServer().done(_.bind(function(resp1, resp2) {

           // Do the operations which you wanted to do when you
           // get a response from Ajax, for example, log response.
        }, this));
    }
};
App.init();
38
задан Fast Snail 17 December 2014 в 17:37
поделиться

9 ответов

3
ответ дан Abdellah 26 August 2018 в 14:46
поделиться
1
ответ дан Carles Barrobés 26 August 2018 в 14:46
поделиться
3
ответ дан Community 26 August 2018 в 14:46
поделиться
0
ответ дан Jack 26 August 2018 в 14:46
поделиться

Запись в выходной поток из процесса - неправильное направление. «выход» в этом случае означает от вас процесс. Попробуйте получить / записать во входной поток для процесса и прочитать из выходного потока, чтобы увидеть результаты.

0
ответ дан Kelly S. French 26 August 2018 в 14:46
поделиться
2
ответ дан Piotr 26 August 2018 в 14:46
поделиться
62
ответ дан tvanfosson 26 August 2018 в 14:46
поделиться
15
ответ дан Vincent Ramdhanie 26 August 2018 в 14:46
поделиться

Каждое выполнение exec порождает новый процесс со своей собственной средой. Таким образом, ваш второй вызов никак не связан с первым. Он просто изменит свой собственный рабочий каталог , а затем выйдет (т. Е. Он эффективно не работает).

Если вы хотите создавать запросы, вам нужно сделать это в один вызов exec. Bash позволяет указать несколько команд в одной строке, если они разделены точкой с запятой; Windows CMD может допускать одно и то же, а если нет, то всегда есть пакетные скрипты.

Как говорит Петр , если этот пример на самом деле , что вы пытаетесь для достижения этой цели вы можете выполнять одно и то же гораздо более эффективно, эффективно и безопасно с помощью платформы:

String[] filenames = new java.io.File("C:/").list();
3
ответ дан Community 15 October 2018 в 05:08
поделиться
  • 1
    @Boris - проверьте историю вопроса, он был отредактирован за два месяца с тех пор, как я опубликовал этот ответ. – Andrzej Doyle 18 January 2012 в 00:44
Другие вопросы по тегам:

Похожие вопросы: