# ProduceArtifactAsync(ArtifactKey)

> Imports an Asset asynchronously using an Importer type or returns a matching cached result.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor.Experimental](/engine/6000.7/script-reference/unityeditor/experimental.md)
* **Assembly:** UnityEditor.CoreModule

```csharp
public static ImportResultID ProduceArtifactAsync(ArtifactKey artifactKey)
```

### Parameters

**** (\[ArtifactKey]\(/engine/6000.7/script-reference/unityeditor/experimental/artifactkey)): ArtifactKey specifying an Asset to import using an Importer type.

### Returns

| Type                                                                                         | Description                                                                |
| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| [ImportResultID](/engine/6000.7/script-reference/unityeditor/experimental/importresultid.md) | Unique identifier for the result of Importing the specified `artifactKey`. |

### Remarks

Reuses an existing cached import result if one exists for `artifactKey`.

This method returns an invalid [ImportResultID](/engine/6000.7/script-reference/unityeditor/experimental/importresultid.md) in the following curcumstances:

1. An internal error occurs. This is accompanied by an error message in the Unity Log.
2. `artifactKey` contains an invalid Asset reference, or an invalid Importer type.
3. There is no cached result, and an async import operation is queued. Completion of an async request is checked by calling [AssetDatabaseExperimental.LookupArtifact](/engine/6000.7/script-reference/unityeditor/experimental/assetdatabaseexperimental/lookupartifact.md).

Additional Resources: [AssetDatabaseExperimental.LookupArtifact](/engine/6000.7/script-reference/unityeditor/experimental/assetdatabaseexperimental/lookupartifact.md).
