2017-02-20 21 views
0

Можно ли получить функцию результата без возврата?Получить результат асинхронной функции без обещания

Например, у меня есть функция, которые нужно возвращать значение, а не обещание:

getItem: function (item) { 
    AppStorage.fetch(item, function (item) { 
     return item; 
    }); 
} 

Этот код не работает вызвать результат неопределен причина не ждать ответа функции. Мне нужно вызвать функцию: «AppStorage.fetch» ​​с синхронным режимом.

У вас есть предложения?

ответ

0

Вы можете использовать функции обратного вызова.

getItem: function (item, callback) { 
    AppStorage.fetch(item, function (item) { 
     callback(item); 
    }); 
} 

Вызов:

getItem(item, function(item) { 

}); 
+0

Спасибо за Ваш ответ но GetItem при условии, от внешнего Lib, так что я не могу изменить вызов. – Matthieu

+0

Вы попробовали что-то вроде: getItem: function (item) { \t var itemResult = undefined; AppStorage.fetch (пункт, функция (пункт) { \t itemResult = элемент; \t возвращенный деталь; }); while (itemResult == undefined); return itemResult; } –