当前位置:   article > 正文

JS异步和UniTask(Unity)_unity unitask promise

unity unitask promise

unity C#异步和JS异步

  • JS异步函数:async/await,在awaii处得到Promise(期约)的“完成”或“未完成”状态前暂停了异步函数,得到后恢复执行。
async a(){
	let p = new Promise((resolve,reject) => {
		setTimeout(resolve,1000,3);	
	})
	console.log(await p);//3
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

相当于Unity的yield return new WaitForSeconds(1);

  • UniTask
    提供了类似的于JS的操作异步函数的一系列API,所有对异步函数的暂停和恢复执行,都可以用await UniTask…的形式代替(比如等待网页的报文、等待资源加载完成、或直接等待若干秒)。
using Cysharp.Threading.Tasks;
public class Demo{
	async UniTask<string> demoAsync(){
		var t = await Resources.LoasAsync<TextAsset>("foo");
		await UniTask.Delay(TimeSpan.FromSeconds(10),
			ignoreTimeScale:false);
		return t?.text ?? throw InvalidOperationException("None");
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

C#新特性,运算符?.指当前者不为空时取得.之后的属性。??判空。但这两个运算符不要用在对"物体身上某组件是否为空“的判断上。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/87449?site
推荐阅读
相关标签
  

闽ICP备14008679号