mirror of https://github.com/sveltejs/svelte
Fix {#await} block scope when updating (#6219)
parent
6d5a200e04
commit
00e58e7bc8
@ -0,0 +1,51 @@
|
|||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
thePromise: new Promise((_) => {})
|
||||||
|
},
|
||||||
|
|
||||||
|
html: `
|
||||||
|
<div>error: undefined</div>
|
||||||
|
`,
|
||||||
|
|
||||||
|
async test({ assert, component, target }) {
|
||||||
|
await (component.thePromise = Promise.resolve('abc'));
|
||||||
|
|
||||||
|
assert.htmlEqual(
|
||||||
|
target.innerHTML,
|
||||||
|
`
|
||||||
|
<div>
|
||||||
|
error: undefined
|
||||||
|
After Resolve: undefined
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
);
|
||||||
|
|
||||||
|
component.error = 'external error occurred';
|
||||||
|
|
||||||
|
assert.htmlEqual(
|
||||||
|
target.innerHTML,
|
||||||
|
`
|
||||||
|
<div>
|
||||||
|
error: ${component.error}
|
||||||
|
After Resolve: ${component.error}
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
);
|
||||||
|
|
||||||
|
try {
|
||||||
|
await (component.thePromise = Promise.reject('failure'));
|
||||||
|
} catch (error) {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.htmlEqual(
|
||||||
|
target.innerHTML,
|
||||||
|
`
|
||||||
|
<div>
|
||||||
|
error: ${component.error}
|
||||||
|
Rejected: failure
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,13 @@
|
|||||||
|
<script>
|
||||||
|
export let thePromise;
|
||||||
|
export let error;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
error: {error}
|
||||||
|
{#await thePromise then _}
|
||||||
|
After Resolve: {error}
|
||||||
|
{:catch error}
|
||||||
|
Rejected: {error}
|
||||||
|
{/await}
|
||||||
|
</div>
|
Loading…
Reference in new issue