Отсрочка исполнения до необходимости - PullRequest
0 голосов
/ 14 декабря 2011

Я знаю, что вы используете jQuery deferreds в следующем сценарии:

У меня есть асинхронный запрос. Я хотел бы выполнить один или несколько разделов кода всякий раз, когда этот запрос возвращается.

Вот моя проблема. Я не хочу, чтобы асинхронный запрос действительно отправлялся до тех пор, пока он не достигнет первого оператора .when.

Например:

У меня есть функция init, которая загружает, скажем, 50 различных отложенных объектов для различных запросов данных. Я, очевидно, не хочу, чтобы все это срабатывало сразу, просто при необходимости. Данные будут загружены (отложенный объект разрешен) в будущих операторах .when.

Вроде сложно, но спасибо, что прочитали это! : D

Вот что у нас есть

init () = function { var data1 = someDeferredRequest (); // бла, много таких }

.doSomethingElse () = функция { // Я хочу, чтобы вызов data1 был запущен только при первой попытке получить его, как показано ниже. Я не хочу, чтобы он был запущен в init $ .When (data1) .then ();

 //other stuff, still want data1 to be completed by here
 $.when(data1).then();

}

1 Ответ

0 голосов
/ 14 декабря 2011

Иметь метод для объектов с именем fire() или run(), все, что вам подходит, захватывает / тянет, делает с данными все, что вы захотите.

Объект будет бездействовать, пока вы не вызовете object.run().

...