Ich bin neu in Reason, derzeit versucht, ein persönliches Projekt von js in Grund zu konvertieren. Meistens war es einfach weit weg von asynchronen Sachen. Ich kann meine Funktion nicht rekursiv mit Verzögerung aufrufen. Ich habe eine Funktion, die getPrice
Verwenden von Versprechen mit setTimeout
type getPrice = unit => Js.Promise.t(int)
ich ein Versprechen von int
zurück wollencheckPrice
eine andere Funktion machen, die von bestimmten Benutzer Preis den aktuellen Preis prüft endlos, es sei denn Bedingung erfüllt ist.
let rec checkPrice = (userPrice) =>
Js.Promise.(
getPrice()
|> then_(
(currentPrice) =>
if (currentPrice >= userPrice) {
resolve(currentPrice)
} else {
/* call this function with setTimeout */
checkPrice(userPrice)
}
)
);
Aber ich bin Typenkonflikt immer setTimeout
sagte
Vermeiden Sie die [ 'Promise' Konstruktor Antipattern] (https://stackoverflow.com/q/23803743/ 1048572? Was-ist-die-Verheißung-Konstruktion-Antipattern-und-wie-vermeide-es! Erstellen Sie eine separate Hilfsfunktion, die eine Verheißung für das Zeitlimit zurückgibt, und verwenden Sie die Verkettungsverkettung. – Bergi