This is my code all of them work correctly except this: new forms().saveForm(item, null). It doesn't call in order, forms is prototype in an another js file and I called here. what should I do to call it in order?
This is my saveform function
const _saveForm = function (model, serverId) {
return new Promise((resolve, reject) => {
try {
$.ajax({
beforeSend: function () { loadPanel.indicatorShow(); },
complete: function () { loadPanel.indicatorHide(); },
method: 'POST',
url: '/Publish/AddForms',
data: { form: model, serverFormId: serverId },
}).done((data) => {
if (data.HasError) {
reject({ state: 'error', content: data });
}
if (!data.HasError) {
resolve({ state: 'done', content: data });
}
}).fail((errorThrown) => {
reject({ state: 'fail', content: errorThrown });
});
} catch (error) {
reject({ state: 'error', content: error });
}
});
}
const s_db = new storeDb();
s_db.getBasicFormDataFromDb().then((result) => {
return result;
}).then((basicForms) => {
s_db.getProviderIdsFromDb().then((providerIds) => {
basicForms.forEach(async (item) => {
var arr_field = [];
const _form_fields = item['fields'];
_form_fields.forEach(async fieldItem => {
var jsondata = JSON.parse(fieldItem);
if (jsondata.hasOwnProperty('SelectiveSetting')) {
var replacePId = jsondata.SelectiveSetting.DataProvider.ProviderId;
_.find(providerIds, (k) => {
if (k['oldId'] === replacePId) {
jsondata.SelectiveSetting.DataProvider.ProviderId = k['newId'];
fieldItem = JSON.stringify(jsondata);
}
});
}
arr_field.push(fieldItem);
});
item['fields'] = arr_field;
new forms().saveForm(item, null);
})
})
})