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 ....(){}