2016-10-20 3 views
0

Этот раздел кода работает очень хорошо .... однако теперь я пытаюсь предотвратить выполнение следующей строки кода до тех пор, пока первая не будет выполнена, но мне трудно понять, как это кодировать: (мой голова кружится в обратном вызове ад)обертывают функцию обратного вызова и нормальную функцию в другую функцию обратного вызова?

Оба функций работают нормально, но checkRegister выполняется до того readFromFile завершения - мне нужно readFromFile завершить первый перед тем checkRegister работает:

readFromFile('userdata.json', 0, yesFile(1), noFile(1051)) ; //callback function 
checkRegister() ; // regular function 
+0

'readFromFile ('userdata.json', 0, yesFile (1), noFile (1051), checkRegister) 'и вызывать 5-й аргумент в реализации' readFromFile' после его завершения. – zerkms

+0

Где функция обратного вызова в этом вызове 'readFromFile'? Можете ли вы показать нам свою реализацию? – Bergi

ответ

0

трудно сказать, что это лучший без просмотра кода для readFromFile, но вы можете передать свой checkRegister в качестве rgument к readFromFile и назвать его, когда это делается при чтении файла (обратного вызова):

readFromFile('userdata.json', 0, yesFile(1), noFile(1051), checkRegister) 

Или использование Обещания, а затем вы можете функции цепи ваш checkRegister:

readFromFile('userdata.json', 0, yesFile(1), noFile(1051)).then(checkRegister) 
+0

Мне нравится вариант обещания. Как я могу это сделать с javascript (а не jQuery). Я пытаюсь сделать: «var prom = new Promise (function», но затем буквально застрял там, передавая «readFromFile» в решение, (будет выходить с пустой ошибкой) ... и затем отключится от этого. это: 'new Promise (function (readFromFile ('userdata.json', 0, yesFile (1), noFile (1051), ошибка). then (checkRegister)' – rolinger

+0

@rolinger Вам нужно будет переписать 'readFromFile' для возврата обещание. Покажите нам свой код, и мы сможем помочь вам в этом. – Bergi

Смежные вопросы