| 
 Порядок выполнения функций с Promise и без. Здравствуйте. Вначале приведу код. Вызов главной функции: 
function ChooseUserCerts()
{
    var StoreObj = new ClassStore();
    StoreObj.OpenStore();
    var CertCount = StoreObj.GetCertCount();
    alert(CertCount);
}
Вызов классов с promise: 
function ClassStore()
{
    this.MyStore = 0;
}
ClassStore.prototype.OpenStore = function () {
    return new Promise(function(resolve, reject){
        cadesplugin.async_spawn(function *(args) {
                this.MyStore = yield cadesplugin.CreateObjectAsync("CAdESCOM.Store");
                yield this.MyStore.Open(cadesplugin.CAPICOM_CURRENT_USER_STORE, cadesplugin.CAPICOM_MY_STORE,
                    cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
                var CertificatesObj = yield this.MyStore.Certificates;
                var Count = yield CertificatesObj.Count;
                if (Count == 0) {
                    alert("Certificate not found: ");
                }
            alert(Count);
        }, resolve, reject);
    });
}
ClassStore.prototype.GetCertCount = function ()
{
    return new Promise(function(resolve, reject){
    cadesplugin.async_spawn(function *(args)
        {
            var CertificatesObj = yield this.MyStore.Certificates;
            var Count = yield CertificatesObj.Count;
            alert(Count);
        }, resolve, reject);
    });       
    
    return Count;
}
Суть в том, что я вызываю в главной функции 2 метода: StoreObj.OpenStore(); // 1 метод StoreObj.GetCertCount(); // 2 метод Второй метод не может работать, пока 1 не закончит свою работу. Так как он юзает переменную из 1 метода. А получается так, что из за Promise второй метод срабатывает быстрее первого. Совмещать их нельзя! Что можете посоветовать? Использование Promise в методах обязательно. Заранее спасибо! | 
| Часовой пояс GMT +3, время: 19:59. |