が、これは奇妙に見える
if (isFile(input)) {
const f = new File([blob], input.name)
resolve(f as T)
} else if (isBlob(input)) {
resolve(blob as T)
}
から:
export
function resize<T extends Blob | File>(input: T, width: number, height: number): Promise<T> {
return new Promise((resolve, reject) => {
const image = new Image()
image.onload =() => {
const canvas = document.createElement('canvas')
canvas.width = width
canvas.height = height
pica.resize(image, canvas)
.then((result) => pica.toBlob(result, input.type, 85))
.then((blob: Blob) => {
if (isFile(input)) {
const f = new File([blob], input.name)
resolve(f as T)
} else if (isBlob(input)) {
resolve(blob as T)
}
})
.catch(err => reject(err))
}
image.src = URL.createObjectURL(input)
})
}
前もってts'dしたことはありませんが、それは 'Promise .resolve'ではありませんか? –
Will
ありがとう、それはこのように動作します プロミス として新しいファイル([新しいBlob()、 'test.jpg')))Promise.resolveを返すが、私はまだそれを取得しない –
ガー、私はしていないtypescriptのジェネリックを十分に知っている(そして、速いスクイズの後、ドキュメントは十分な情報を持っていない。彼らは 'extends File | Blob'構文をカバーしていないので頭が傷ついている)。私は 'promise' * works *のようにちょっとショックを受けました。どうすればいいの?[Anders?](https://en.wikipedia.org/wiki/Anders_Hejlsberg)私はあなたが* Promise .resolveを使用する必要があると思いますし、 'promise 'が結果になると思いますnull値が返されています...これについては確かですか? –
Will