Использование await / async с наблюдаемыми в TypScript [duplicate]

Правило of Three является правилом для C ++, в основном говоря

Если вашему классу требуется любой из

  • конструктор копирования,
  • оператор присваивания,
  • или деструктор,

определенно, тогда, вероятно, все три из них .

blockquote>

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

Если для копирования ресурса, который ваш класс управляет, нет хорошей семантики, тогда подумайте о том, чтобы запретить копирование, объявив (не , определяющий ) конструктор копирования и оператор присваивания как private.

(Обратите внимание, что предстоящая новая версия стандарта C ++ (которая является C ++ 11) добавляет семантику перемещения в C ++, что, скорее всего, изменит правило из трех. Однако я слишком мало знаю об этом напишите раздел C ++ 11 о правиле трех.)

25
задан Dave 21 April 2016 в 18:41
поделиться

3 ответа

rxjs6

https://github.com/ReactiveX/rxjs/issues/2868#issuecomment-360633707

Не выполнять труба. Он находится по объекту Observable по умолчанию.

Observable.of('foo').toPromise(); // this

rxjs5

import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/map';

...

this._APIService.getAssetTypes()
.map(assettypes => {
  this._LocalStorageService.setAssetTypes(assettypes);
})
.toPromise()
.catch(err => {
  this._LogService.error(JSON.stringify(err));
});
48
ответ дан Günter Zöchbauer 24 August 2018 в 00:43
поделиться

вам действительно не нужно это делать ...

import 'rxjs/add/operator/first';


this.esQueryService.getDocuments$.first().subscribe(() => {
        event.enableButtonsCallback();
      },
      (err: any) => console.error(err)
    );
    this.getDocuments(query, false);

first () гарантирует, что блок подписки вызывается только один раз (после чего он будет как если бы вы никогда не подписались), точно то же, что и обещания, тогда ()

10
ответ дан danday74 24 August 2018 в 00:43
поделиться

наблюдаемый может быть преобразован в обетование следующим образом:

let promise=observable.toPromise();
9
ответ дан Luca C. 24 August 2018 в 00:43
поделиться
Другие вопросы по тегам:

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