JavaScript中的异步方法

JavaScript中的异步方法,javascript,jquery,Javascript,Jquery,下面是我的JS方法 function test(key, language) { var uri = '/Resources/ValidationMessages.json'; fetch(uri).then(response => { return response.json(); }).then(data => { console.log('Inside Function - ' +

下面是我的JS方法

function test(key, language) {
        var uri = '/Resources/ValidationMessages.json';
        fetch(uri).then(response => {
            return response.json();
        }).then(data => {
            console.log('Inside Function - ' + data[key]);
            return data[key];
        }).catch(err => {
            console.log(' Error ');
        });
    }
将此方法调用为

var v = test('spnrequiredRegisterEmail');
console.log('Outside Function - ' + v);
函数内部打印值,但函数外部的语句总是未定义

我试图实现的解决方案是,我必须将span的
n
number中的一些文本设置为内部文本,在传递相应的键后将通过此函数调用,但每个span都将
undefined
显示为内部文本


它不会等待方法完成,因此如何解决此问题?

尝试使用
async
/
wait

async function test(key, language) {
    try {
        var uri = '/Resources/ValidationMessages.json';
        var resp = await fetch(uri);
        var data = resp.json();
        console.log('Inside Function - ' + data[key]);
        return data[key];    
    catch(err) {
        console.log(err);
    }
}