Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将值从函数返回到主线程?_Javascript - Fatal编程技术网

Javascript 如何将值从函数返回到主线程?

Javascript 如何将值从函数返回到主线程?,javascript,Javascript,我得到了以下开关: case "contacts": html = contacts(required_fields[h]); break; 其中,联系人功能为: function contacts(data) { return getContacts(function (response) { response = JSON.parse(response); var contacts = ''; for (var c

我得到了以下
开关

case "contacts":
    html = contacts(required_fields[h]);
    break;
其中,
联系人
功能为:

function contacts(data) {
    return getContacts(function (response) {
        response = JSON.parse(response);
        var contacts = '';

        for (var c = 0; c < response.length; c++) {
            contacts += '<input id="id_' + data.id + '" name="feature_' + data.id + '" value="' + response[c].phone_number
                + '" class="form-control contacts required" placeholder="Телефон" type="text" required>';
        }

        return contacts;
    });
}

您需要在js asynchron wait中考虑稍后设置变量html的值,您需要使用类似async/await或承诺的内容

function contacts(data) {
return getContacts(function (response) {
    return new Promise((resolve,reject) => {
    response = JSON.parse(response);
    var contacts = '';

    for (var c = 0; c < response.length; c++) {
        contacts += '<input id="id_' + data.id + '" name="feature_' + data.id + '" value="' + response[c].phone_number
            + '" class="form-control contacts required" placeholder="Телефон" type="text" required>';
    }

    resolve(contacts);
    })
});
开关所在的函数需要类似异步

async function ....(){}

Lie回调函数?是的,我建议你,在js中查找承诺。这不是一个很好的答案。充其量只是一个注释。也许你可以添加一些示例代码来解释你的意思。你能发布你的getContacts函数吗?是的,我添加了这个函数
html = await contacts(required_fields[h]);
async function ....(){}