2017-02-20 69 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

謝謝您的回答,但來自外部的lib提供的,所以我不能改變呼叫爲getItem。 – Matthieu

+0

你試過類似的東西: getItem:function(item){ \t var itemResult = undefined; AppStorage.fetch(項目,函數(項目){ \t itemResult =項; \t 返回項; }); while(itemResult == undefined); return itemResult; } –