mirror of
https://github.com/ant-design/ant-design.git
synced 2024-11-27 20:49:53 +08:00
59ad48476b
* chore: add boime lint * fix lint * use files ignore * revert change * ignore clarity.js * fix some errors * fix some errors * fix some errors * fix some errors * add yml file * Update clarity.js Signed-off-by: afc163 <afc163@gmail.com> * add npm run lint:biome * add npm run lint:biome * fix test case * fix ts errors * fix ts errors * fix lint and add .lintstagedrc * shorten prop name * chore: update package.json * update biome.json * chore: remove stylelint * chore: useOptionalChain * fix lint * biome format * prettier all code * prettier all code * fix site test --------- Signed-off-by: afc163 <afc163@gmail.com>
31 lines
673 B
TypeScript
31 lines
673 B
TypeScript
function use<T>(promise: PromiseLike<T>): T {
|
|
const internal: PromiseLike<T> & {
|
|
status?: 'pending' | 'fulfilled' | 'rejected';
|
|
value?: T;
|
|
reason?: any;
|
|
} = promise;
|
|
if (internal.status === 'fulfilled') {
|
|
return internal.value as T;
|
|
}
|
|
if (internal.status === 'rejected') {
|
|
throw internal.reason;
|
|
}
|
|
if (internal.status === 'pending') {
|
|
throw internal;
|
|
}
|
|
internal.status = 'pending';
|
|
internal.then(
|
|
(result) => {
|
|
internal.status = 'fulfilled';
|
|
internal.value = result;
|
|
},
|
|
(reason) => {
|
|
internal.status = 'rejected';
|
|
internal.reason = reason;
|
|
},
|
|
);
|
|
throw internal;
|
|
}
|
|
|
|
export default use;
|