Spec-Zone.ru › Dart 1

dart:isolate

Метод addOnExitListener

void addOnExitListener(SendPort responsePort, { Object response })

Запрашивает сообщение о завершении выполнения responsePort при завершении изолированного выполнения.

Изолированное выполнение отправит response в качестве сообщения на responsePort как последнее действие перед завершением. После отправки сообщения дальнейший код не будет выполняться.

Добавление одного и того же порта более одного раза приведет только к получению одного сообщения о завершении, используя последнее значение ответа, которое было добавлено, и его необходимо удалить только один раз с помощью removeOnExitListener.

Если изолированное выполнение завершилось до получения этого запроса, сообщение о завершении не будет отправлено.

Объект response должен соответствовать тем же ограничениям, которые применяются к SendPort.send. Рекомендуется использовать только простые значения, которые могут быть отправлены во все изолированные выполнения, такие как null, булевы значения, числа или строки.

Поскольку изолированные выполнения выполняются одновременно, возможно, что оно завершится до создания слушателя завершения, и в этом случае ответ не будет отправлен на responsePort. Чтобы избежать этого, используйте соответствующий параметр функции spawn или запустите изолированное выполнение приостановленным, добавьте слушателя, а затем возобновите изолированное выполнение.

Исходный код

/* TODO(lrn): Can we do better? Can the system recognize this message and
 * send a reply if the receiving isolate is dead?
 */
external void addOnExitListener(SendPort responsePort, {Object response});

© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-isolate/Isolate/addOnExitListener.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API