在Svelte中,可以使用异步循环来处理需要从API或其他异步来源获取数据的情况。下面是如何在Svelte中使用异步each的代码示例:
在这个例子中,promiseThatWillResolveToAnArray是一个异步方法,它返回一个包含项目的数组。await指令等待这个异步方法完成并返回一个值。如果异步方法成功完成,它将返回items。每个指令使用对象的id属性作为键,指定要循环的数组。如果异步方法抛出错误,catch指令将捕获错误并显示错误消息。注意,在这个例子中,li元素包装在await指令中,因为等待异步结果时没有可供显示的内容。
需要注意的是,在Svelte版本3.31.0及以上,可以使用新的await block指令,简化异步循环的写法。
{#await promiseThatWillResolveToAnArray as items} {#each items as item (item.id)}
使用await block指令,可以避免在成功响应后仅显示“等待”消息的情况。如果异步操作成功完成,items会包含响应结果并进入下一级块。如果异步操作抛出错误,catch指令将捕获错误并显示错误消息。
参考来源:https://svelte.dev/tutorial/await-blocks