Options
显示所有项
  • 仅显示公有项
  • 显示保护/公有项
  • 显示所有项
Menu

lang提供语言相关的API,比如delay(延时)。

索引

函数

delay

  • delay(timeout: number): 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: any, name: string, __namedParameters?: PropertyDescriptor): 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

  • Type parameters

    • T

    参数

    • evaluator: () => T
        • (): T
        • 返回 T

    返回 ReadOnlyProperty<T>

promise

  • promise<T>(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): 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);
      });
    }
    
    

    Type parameters

    • T

    参数

    • executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void
        • (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void): void
        • 参数

          • resolve: (value: T | PromiseLike<T>) => void
              • (value: T | PromiseLike<T>): void
              • 参数

                • value: T | PromiseLike<T>

                返回 void

          • reject: (reason?: any) => void
              • (reason?: any): void
              • 参数

                • 可选 reason: any

                返回 void

          返回 void

    返回 Promise<T>