Epic игнорирует результат первого обещания, когда одновременно происходит второе действие с таким же типом

В блоге Скотта Мейера есть замечательная мысль:

Во-первых, не все запросы на копирование могут быть заменены ходами. Только запросы на копирование для rvalues ​​имеют право на оптимизацию. Во-вторых, не все типы поддерживают операции перемещения, которые более эффективны, чем операции копирования. Примером является std :: array. В-третьих, даже типы, которые поддерживают эффективные операции перемещения, могут поддерживать их только некоторое время. Пример: std :: string. Он поддерживает ходы, но в случаях, когда std :: string реализуется с использованием SSO (оптимизация небольших строк), маленькие строки так же дороги, как и для копирования!

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

Для классов, в которых вы явно не указываете перемещать элементы, есть несколько точек беспокойства. Также существует проблема явно / неявно удаленных элементов перемещения, которые препятствуют копированию из rvalues ​​. Очень ценный источник проблем с неявной генерацией элементов перемещения можно найти в статье Страуструпа под названием To Move or Not to Move .

Что касается обработки исключений с семантикой перемещения, я бы предложил Сообщение Dave Abraham Исключительно перемещение .

Я попытаюсь вернуться к этому ответу с некоторыми примерами, когда я получу время. Надеюсь, пока ссылки, упомянутые выше, помогут вам начать работу.

0
задан therg 27 February 2019 в 07:52
поделиться

1 ответ

Изменение switchMap на mergeMap решило проблему.

Документация по switchMap: Подобно mergeMap (), но когда источник, из которого наблюдается наблюдаемая исходная программа, отменяет любые предыдущие подписки внутренней наблюдаемой.

0
ответ дан therg 27 February 2019 в 07:52
поделиться
Другие вопросы по тегам:

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