2014-04-05 2 views
0

Я работал над созданием мобильного приложения с веб-sql в качестве базы данных. Я пытаюсь вернуть массив из одной функции, как показано нижеdb.trasaction не ждет обратного вызова. Intel Xdk

getCheckedItems:function(type,itemId){ 
       var optArr=[]; 
       var sql ="select optionid as opt from MyTable where familymemberid=" + this.memberId+ " and questionid="+itemId 
        MyDb.runQuery(sql, function(optionrecords) { 
         if(optionrecords.length>0) 
         { 
          if(type==2) 
          { 
           var optionId=optionrecords[0].opt; 
           optArr.push(optionId); 
           alert(optArr); 
           // alert(optionId+"Hello"); 
          } 

          else 
          { 
           for(var i=0;i<optionrecords.length;i++) 
           { 
           optArr.push(optionrecords[i].opt); 
           } 
          } 
         } 

         }); 
     alert(optArr); 
     return optArr; 
    } 

Но здесь Второе предупреждение optArr т.е. показывается перед тем оповещение в транзакции. Как я могу сделать транзакцию wait db до завершения массива.

ответ

0

Я не эксперт по веб-sql, но, по моему мнению, вам не хватает ; в конце строки var sql = ..., и это может привести к неожиданному поведению.