Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   promise help (https://javascript.ru/forum/node-js-io-js/86080-promise-help.html)

fxobject 05.09.2024 13:14

promise help
 
Помогите новичку разобраться.... что то совсем непонятно....
краткий код (все лишнее убрано):
......................
}).then(( result:Array<{ip:string}> )=>{

 let rowPromise = new Promise( (resolve) => resolve( true ));
 rowPromise.then(()=>{
          return __this.servers.device[indexServer].object.AAA({ )})
  return rowPromise
}).then(( )=>{
  return true

при выполнении идет на ААА. Эта функция возвращает промис, который на момент выполнения не resolve
как только выполнение в AAA попадает на строку, ввода/вывода - выполнение переходит на строку return true
и функция AAA продолжает выполнятся но уже "сама по себе"
promise еще не resolve - почему срабатывает then?
следующий момент, если откорректировать код таким образом:

......................
}).then(( result:Array<{ip:string}> )=>{
    return __this.servers.device[indexServer].object.AAA({ )})
}).then(( )=>{
  return true

все работает как надо. т.е. пока AAA не завершится - return true не выполнится

fxobject 05.09.2024 13:22

вот еще дополнение
}).then(( result:Array<{ip:string}> )=>{
 
 let rowPromise = new Promise( (resolve) => resolve( true ));
 rowPromise.then(()=>{
       return __this.servers.device[indexServer].object.AAA({ )})

  return rowPromise.then(()=>{
         let a = 0       //!!! сюда не заходит, идет на return true
                            //сюда зайдет когда завершится AAA
   })

}).then(( )=>{

  return true

fxobject 05.09.2024 13:34

:-E разобрался. так и должно быть. в Ж. все, усталость, сорри


Часовой пояс GMT +3, время: 13:37.