Javascript JS-元素的异步文本设置

Javascript JS-元素的异步文本设置,javascript,asynchronous,async-await,Javascript,Asynchronous,Async Await,我正在创建使用特殊的多语言字段的动态内容 尽管程序中有20种不同的语言,我不想全部下载,也不想在只需要少量条目时下载特定语言的整个“词典”,但我决定分别查询每个条目(尽管使用Websocket,所以速度很快) 在定义表单内容时,我希望有一次如下所示的符号: DivElement.innerText=MultilingualProcessor("RefID"); async function MultilingualProcessor(txt){ function i

我正在创建使用特殊的多语言字段的动态内容

尽管程序中有20种不同的语言,我不想全部下载,也不想在只需要少量条目时下载特定语言的整个“词典”,但我决定分别查询每个条目(尽管使用Websocket,所以速度很快)

在定义表单内容时,我希望有一次如下所示的符号:

DivElement.innerText=MultilingualProcessor("RefID");
async function MultilingualProcessor(txt){
    function iA(){ return new Promise((v,x)=>{
        // The real query here is not given, as it is long.
        // I gave here for test just a "timeout".
        setTimeout(()=>{ v(txt); },3000);
    }); }
    return await iA();
}
当RefID是应该为给定元素显示的内容的字典条目时(所有操作都是在纯香草JavaScript中完成的!)

问题

通过执行以下操作,多语言处理器的功能是异步的:

DivElement.innerText=MultilingualProcessor("RefID");
async function MultilingualProcessor(txt){
    function iA(){ return new Promise((v,x)=>{
        // The real query here is not given, as it is long.
        // I gave here for test just a "timeout".
        setTimeout(()=>{ v(txt); },3000);
    }); }
    return await iA();
}
返回是一个Promise对象(显然),解析后它不会更新“innerText”- 原因很清楚:值被解析为string(),承诺被丢失(只保留在内存中)

问题

  • 如何确定调用方属性,以便只需执行property=result?
    • 在这种情况下,属性是innerText-但它也可以绑定到不同的属性
    • 我不想给每个元素赋予“id”,也不想把它作为第二个参数提供
    • “this”是不够的,即使它指向对象——我需要知道调用的实际属性
  • 也许有更好的方法来改变改变属性?即使我使用代理并使用“set”,我也需要将其应用于所有DOM元素,因为任何DOM元素都可能会收到文本值属性的multi-languageProcessor(),这根本不是一个好主意

  • 注意:我可以用脚本本身下载所有需要的条目-但是我需要在顶部指定条目-我不想写两次(一次在顶部,一次在Multilanguage Processor()中),我希望refid清晰地显示在预期结果的位置。

    我想您需要一个类似Vue或Angular的框架。