Javascript JS-元素的异步文本设置
我正在创建使用特殊的多语言字段的动态内容 尽管程序中有20种不同的语言,我不想全部下载,也不想在只需要少量条目时下载特定语言的整个“词典”,但我决定分别查询每个条目(尽管使用Websocket,所以速度很快) 在定义表单内容时,我希望有一次如下所示的符号:Javascript JS-元素的异步文本设置,javascript,asynchronous,async-await,Javascript,Asynchronous,Async Await,我正在创建使用特殊的多语言字段的动态内容 尽管程序中有20种不同的语言,我不想全部下载,也不想在只需要少量条目时下载特定语言的整个“词典”,但我决定分别查询每个条目(尽管使用Websocket,所以速度很快) 在定义表单内容时,我希望有一次如下所示的符号: DivElement.innerText=MultilingualProcessor("RefID"); async function MultilingualProcessor(txt){ function i
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(),承诺被丢失(只保留在内存中)
问题
- 在这种情况下,属性是innerText-但它也可以绑定到不同的属性
- 我不想给每个元素赋予“id”,也不想把它作为第二个参数提供
- “this”是不够的,即使它指向对象——我需要知道调用的实际属性
注意:我可以用脚本本身下载所有需要的条目-但是我需要在顶部指定条目-我不想写两次(一次在顶部,一次在Multilanguage Processor()中),我希望refid清晰地显示在预期结果的位置。我想您需要一个类似Vue或Angular的框架。