如何保持直到另一个功能完成?

时间:2019-01-03 09:46:40

标签: javascript pixi.js

我正在使用微信开发一个pixi程序,它的许多功能无法使用,所以我自己写。

共有3个功能:

export function load(){
   PIXI.loader.add("images/bg.jpg").load(setup);
}

load()完成后setup()将被调用。

  export const bg;
        function setup(){
        bg=new Sprite(resources["images/bg.jpg"].texture);
    }

在主要功能中,我想在bg功能完成后使用setup

第一个和第二个函数在file1.js中。而在file2.js中,该文件主要包含以下功能:

import * as global from "js/file1.js"
function main(){
    global.load();
    /* is there anyway to wait the setup is completed?*/
    bg.scale.set(0.5);
    /* since the load function completed but the setup is not complete so 
    I cannot use the bg.
}

我不想使用setTimeOut来确保设置已消失。 反正还有等待吗?

我想知道main函数是否可以使用单数形式?因为我将在load()函数中启动main()函数,并等待setup()完成,并且可以使用在setup()函数中初始化的对象。

1 个答案:

答案 0 :(得分:0)

是的,您可以使用JavaScript的asyncawait功能来做到这一点。 当异步任务完成时,异步函数将返回。 因此,对于您来说,您的代码应如下所示:

 async function setup(){
    bg = await new Sprite(resources["images/bg.jpg"].texture);
}

那样,不需要超时,这通常是正确的异步方式。

希望有帮助。