lang - 语言
约 479 字大约 2 分钟
lang提供语言相关的API,比如delay
(延时)。
目录
类
接口
函数
函数
delay
▸ delay(timeout
): Promise
<void
>
返回一个Promise,将在timeout时间后resolve。例如await delay(1000)
会在1秒后执行。不同于Pro 8的sleep()
,此函数并不会真正阻塞线程/事件循环。
示例
"nodejs";
const { delay } = require('lang');
async function main() {
console.log(1);
await delay(2000);
console.log(2);
}
main();
参数
名称 | 类型 | 描述 |
---|---|---|
timeout | number | 超时时间,若小于或等于0,则此函数返回一个立即resolve的Promise。 |
返回值
Promise
<void
>
lazy
▸ lazy(target
, name
, __namedParameters?
): any
TypeScript装饰器,在JavaScript中无法使用。
用于装饰类的getter属性,装饰后的属性在第一个调用时会被自动执行并保存值,以后调用时会使用之前保存的值。
示例
import { lazy } from 'lang'
class Sum {
private n: number;
constructor(n: number) {
this.n = n;
}
@lazy
get sum() {
console.log('calculating sum...');
let result = 0;
for (let i = 0; i < this.n; i++) {
result += i;
}
return result;
}
}
const sum = new Sum(10);
console.log(sum.sum); // calculating sum...55
console.log(sum.sum); // 55
参数
名称 | 类型 |
---|---|
target | any |
name | string |
__namedParameters | PropertyDescriptor |
返回值
any
lazyProp
▸ lazyProp<T
>(evaluator
): ReadOnlyProperty
<T
>
类型参数
名称 |
---|
T |
参数
名称 | 类型 |
---|---|
evaluator | () => T |
返回值
promise
▸ promise<T
>(executor
): Promise
<T
>
创建一个Promise,与new Promise
类似,唯一不同的是在此Promise状态在pending状态时(也即resolve/reject之前),autojs会保持引擎不退出。
由于nodejs并不感知Java的一些异步API的执行,此函数通常用于创建和Java API相关的Promise,在Java API返回之前保持程序运行。
示例
"nodejs";
const { promise } = require('lang');
const { android } = require('android');
function loadAudioAsync(file) {
const SoundPool = android.media.SoundPool;
return promise(function (resolve) {
const soundPool = new SoundPool(1, SoundPool.STREAM_MUSIC, 0);
soundPool.setOnLoadCompleteListener($autojs.java.wrap(() => resolve(soundPool)));
soundPool.load(file, 1);
});
}
类型参数
名称 |
---|
T |
参数
名称 | 类型 |
---|---|
executor | (resolve : (value : T | PromiseLike <T >) => void , reject : (reason? : any ) => void ) => void |
返回值
Promise
<T
>