awaitしてもメソッドチェーンしたい
Q&A
Closed
解決したいこと
内部にawait
を含んでいるasync
関数を持つclassでメソッドチェーンをできるようにしたいのですが、思いつく範囲では上手くいかなさそうです…。
basicClass.js
// 実際のコードでは親クラスが存在しており、これも影響を及ぼしている可能性があるのでそれらしく書いておきます
export default class basicClass {
/**
* 親クラスのreturn thisする関数
* @returns{Promise<this>}
*/
async hoge() {
await aPromiseMethod();
return this;
}
}
fugaClass.js
import basicClass from './basicClass.js';
export default class FugaClass extends basicClass {
constructor () {
super();
}
/**
* メソッドA
* @returns {Proimise<this>}
*/
async methodA() {
await anyPromiseMethod();
return this;
}
/**
* メソッドB
* @returns {Promise<this>}
*/
async methodB() {
await somePromiseMethod();
return this;
}
}
whatIWantToDo.js
import FugaClass from './fugaClass.js';
const fuga = new FugaClass();
// これをしたいが上手くいかなさそう
await fuga
.methodA()
.methodB();
発生している問題・エラー
この問題が起こるコードが超巨大で、実行してエラーを出すまで(あまりにも怖くて)やっていませんが、とりあえず現状ではメソッドチェーンの後ろ側の関数について型ヒントが出ない状態でした。
自分で試したこと
実際上記のコードを書いてみましたが…VSCodeで型ヒントが出てこないのが怖かったので一旦作業停止しています。
0