0
私のサガでは、私は降伏する必要があるが、約束を直接返さない関数がある。この関数はこれです:約束を含むオブジェクトを返す関数の利回り
export function requestDownload(url): {
let resolve, reject;
return {
type: REQUEST,
url,
promise: new Promise(res=>resolve=res, rej=>reject=rej),
resolve,
reject
}
}
は私がお返しにpromise
フィールド上yield
にする必要があります。私はcall
のバリエーションを試しましたが、これを行うことはできません。このrequestDownload
関数を変更して、約束を直接返すことはできません。
これはredux-sagaヘルパーで可能ですか?
私がやろうとしています要約すると:
私がやろうとしています:
function* mySaga() {
yield call(requestDownload, 'blah_url')
}
おっとああ、あなたは約束の上で直接生成することができますか?私はこれを試してみる必要があります。 – Noitidart
戻り値から約束を抽出する方法を 'call'に伝えるために書いてもらえますか?これは私にとってテスト容易性の方が良いでしょう。 – Noitidart
私の頭に浮かぶのは、 'let {promise} = yield call(requestDownload、 'blah_url')'だけです。それより簡単なものは見つけられませんが、それは本当に問題ではありませんテスト中。 –