例如,有一個異步函數,我不發展自己,但我知道一個隨機時間(在幾秒鐘內)該函數將返回一個值。 這是否有任何方式等待回報,如果它不返回承諾?如何等待一個值返回,如果它不是承諾
0
A
回答
3
不是這樣的。
您可以編寫一個包裝函數,該函數返回一個承諾,直到獲得結果爲止。
承諾然後會調用您沒有重複寫入的函數(例如,使用setInterval
),直到它返回一個值,然後通過它來解析。
function wrap_function() {
return new Promise(function (resolve, reject) {
var interval = setInterval(function() {
var result = the_origional_function();
if (result) {
clearInterval(interval);
resolve(result);
}
}, 2000);
});
}
(假設我解釋的聲明「在幾秒鐘)這個函數會返回一個值」
+0
@GlassMan - 不要這樣做。這不是解決這個問題的正確方法。當您向我們展示其中包含異步操作的實際代碼時,我們可以提供解決此問題的好方法。異步黑客是一團糟。不要使用它們。爲了製作可靠,可維護的代碼,學會以正確的方式解決異步問題,而不要使用黑客技術。如果需要以正確的方式解決問題,請修改項目中其他人的代碼。 – jfriend00
相關問題
- 1. 返回值前等待承諾
- 2. 等待一個承諾來解決函數返回一個值
- 3. 如何等待直到承諾解決才返回值?
- 4. make函數等待承諾返回nodejs
- 5. Javascript承諾等待AccessToken值
- 6. AngularJS如何等待,直到承諾返回
- 7. 定義一個等待承諾返回的導航指令
- 8. 等待一個承諾或另一個
- 9. NodeJs,承諾不等待
- 10. 如何使承諾返回結果?
- 11. 如何嵌套2個承諾並讓ionViewCanLeave等待結果?
- 12. nodejs承諾只是不等待
- 13. 返回承諾值
- 14. 如何從承諾返回價值
- 15. Winjs承諾返回一個值
- 16. 從承諾中返回一個值
- 17. 異步/等待不是等待承諾完成
- 18. Angular2承諾 - 返回已返回一個承諾
- 19. angularjs:鏈承諾返回一個承諾,而不是一個對象
- 20. 如果我屈服於Promise,它是否等待承諾解決之前繼續
- 21. 我如何等待一個字符串返回一個值?
- 22. 如何在返回承諾時解決一個值?
- 23. 如何從ajax承諾中返回一個值
- 24. 如何等待查詢返回結果?
- 25. 如何在Python中啓動一個子進程,而不是等待它返回
- 26. 嵌套的$ http.post總是返回一個承諾,無論如何
- 27. 如何根據承諾的結果返回布爾值?
- 28. 等待承諾滿員(Javascript)
- 29. 等待承諾Angular 2
- 30. socket.io - socket.on等待承諾
通常情況下,你指定一旦函數結束時調用回調函數正確)。我強烈建議*不要*在同步函數中封裝異步函數,並帶有一些難看的超時等。 – Robert
向我們展示您自己未開發的實際異步代碼,並且我們可以展示真實的答案。如果沒有這些,我們所能做的只是猜測,任何「投票」響應都是醜陋的,低效的做事方式。我們需要看到實際的代碼,以便提出可靠的建議或正確的做法。 – jfriend00